home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / INTER53C.ZIP / INTERRUP.L < prev    next >
Text File  |  1997-01-12  |  309KB  |  8,429 lines

  1. Interrupt List, part 12 of 16
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. --------M-330000-----------------------------
  4. INT 33 - MS MOUSE - RESET DRIVER AND READ STATUS
  5.     AX = 0000h
  6. Return: AX = status
  7.         0000h hardware/driver not installed
  8.         FFFFh hardware/driver installed
  9.     BX = number of buttons
  10.         0000h other than two
  11.         0002h two buttons (many drivers)
  12.         0003h Mouse Systems/Logitech three-button mouse
  13.         FFFFh two buttons
  14. Notes:    to use mouse on a Hercules-compatible monographics card in graphics
  15.       mode, you must first set 0040h:0049h to 6 for page 0 or 5 for page 1,
  16.       and then call this function.    Logitech drivers v5.01 and v6.00
  17.       reportedly do not correctly use Hercules graphics in dual-monitor
  18.       systems, while version 4.10 does.
  19.     the Logitech mouse driver contains the signature string "LOGITECH"
  20.       three bytes past the interrupt handler; many of the Logitech mouse
  21.       utilities check for this signature.
  22.     Logitech MouseWare v6.30 reportedly does not support CGA video modes
  23.       if no CGA is present when it is started and the video board is
  24.       later switched into CGA emulation
  25. SeeAlso: AX=0011h,AX=0021h,AX=002Fh,INT 62/AX=007Ah,INT 74
  26. --------M-330001-----------------------------
  27. INT 33 - MS MOUSE v1.0+ - SHOW MOUSE CURSOR
  28.     AX = 0001h
  29. SeeAlso: AX=0002h,INT 16/AX=FFFEh,INT 62/AX=007Bh,INT 6F/AH=06h"F_TRACK_ON"
  30. --------M-330002-----------------------------
  31. INT 33 - MS MOUSE v1.0+ - HIDE MOUSE CURSOR
  32.     AX = 0002h
  33. Note:    multiple calls to hide the cursor will require multiple calls to
  34.       function 01h to unhide it.
  35. SeeAlso: AX=0001h,AX=0010h,INT 16/AX=FFFFh,INT 62/AX=007Bh
  36. SeeAlso: INT 6F/AH=08h"F_TRACK_OFF"
  37. --------M-330003-----------------------------
  38. INT 33 - MS MOUSE v1.0+ - RETURN POSITION AND BUTTON STATUS
  39.     AX = 0003h
  40. Return: BX = button status (see #2423)
  41.     CX = column
  42.     DX = row
  43. Note:    in text modes, all coordinates are specified as multiples of the cell
  44.       size, typically 8x8 pixels
  45. SeeAlso: AX=0004h,AX=000Bh,INT 2F/AX=D000h"ZWmous"
  46.  
  47. Bitfields for mouse button status:
  48. Bit(s)    Description    (Table 2423)
  49.  0    left button pressed if 1
  50.  1    right button pressed if 1
  51.  2    middle button pressed if 1 (Mouse Systems/Logitech/Genius)
  52. --------M-330004-----------------------------
  53. INT 33 - MS MOUSE v1.0+ - POSITION MOUSE CURSOR
  54.     AX = 0004h
  55.     CX = column
  56.     DX = row
  57. Note:    the row and column are truncated to the next lower multiple of the cell
  58.       size (typically 8x8 in text modes); however, some versions of the
  59.       Microsoft documentation incorrectly state that the coordinates are
  60.       rounded
  61. SeeAlso: AX=0003h,INT 62/AX=0081h,INT 6F/AH=10h"F_PUT_SPRITE"
  62. --------M-330005-----------------------------
  63. INT 33 - MS MOUSE v1.0+ - RETURN BUTTON PRESS DATA
  64.     AX = 0005h
  65.     BX = button number (see #2424)
  66. Return: AX = button states (see #2423)
  67.     BX = number of times specified button has been pressed since last call
  68.     CX = column at time specified button was last pressed
  69.     DX = row at time specified button was last pressed
  70. Note:    at least for the Genius mouse driver, the number of button presses
  71.       returned is limited to 7FFFh
  72. SeeAlso: AX=0006h,INT 62/AX=007Ch
  73.  
  74. (Table 2424)
  75. Values for mouse button number:
  76.  0000h    left
  77.  0001h    right
  78.  0002h    middle (Mouse Systems/Logitech/Genius mouse)
  79. --------M-330006-----------------------------
  80. INT 33 - MS MOUSE v1.0+ - RETURN BUTTON RELEASE DATA
  81.     AX = 0006h
  82.     BX = button number (see #2424)
  83. Return: AX = button states (see #2423)
  84.     BX = number of times specified button has been released since last call
  85.     CX = column at time specified button was last released
  86.     DX = row at time specified button was last released
  87. Note:    at least for the Genius mouse driver, the number of button releases
  88.       returned is limited to 7FFFh
  89. SeeAlso: AX=0005h,INT 62/AX=007Ch
  90. --------M-330007-----------------------------
  91. INT 33 - MS MOUSE v1.0+ - DEFINE HORIZONTAL CURSOR RANGE
  92.     AX = 0007h
  93.     CX = minimum column
  94.     DX = maximum column
  95. Note:    in text modes, the minimum and maximum columns are truncated to the
  96.       next lower multiple of the cell size, typically 8x8 pixels
  97. SeeAlso: AX=0008h,AX=0010h,AX=0031h,INT 62/AX=0080h
  98. SeeAlso: INT 6F/AH=0Ch"F_SET_LIMITS_X"
  99. --------M-330008-----------------------------
  100. INT 33 - MS MOUSE v1.0+ - DEFINE VERTICAL CURSOR RANGE
  101.     AX = 0008h
  102.     CX = minimum row
  103.     DX = maximum row
  104. Note:    in text modes, the minimum and maximum rows are truncated to the
  105.       next lower multiple of the cell size, typically 8x8 pixels
  106. SeeAlso: AX=0007h,AX=0010h,AX=0031h,INT 62/AX=0080h
  107. SeeAlso: INT 6F/AH=0Eh"F_SET_LIMITS_Y"
  108. --------M-330009-----------------------------
  109. INT 33 - MS MOUSE v3.0+ - DEFINE GRAPHICS CURSOR
  110.     AX = 0009h
  111.     BX = column of cursor hot spot in bitmap (-16 to 16)
  112.     CX = row of cursor hot spot (-16 to 16)
  113.     ES:DX -> mask bitmap (see #2425)
  114. Notes:    in graphics modes, the screen contents around the current mouse cursor
  115.       position are ANDed with the screen mask and then XORed with the
  116.       cursor mask
  117.     the Microsoft mouse driver v7.04 and v8.20 uses only BL and CL, so the
  118.       hot spot row/column should be limited to -128..127
  119.     Microsoft KnowledgeBase article Q19850 states that the high bit is
  120.       right-most, but that statement is contradicted by all other available
  121.       documentation
  122. SeeAlso: AX=000Ah,AX=0012h,AX=002Ah,INT 62/AX=007Fh,INT 6F/AH=0Ah"F_DEF_MASKS"
  123.  
  124. Format of mouse mask bitmap:
  125. Offset    Size    Description    (Table 2425)
  126.  00h 16 WORDs    screen mask
  127.  10h 16 WORDs    cursor mask
  128. Note:    each word defines the sixteen pixels of a row, low bit rightmost
  129. --------M-33000A-----------------------------
  130. INT 33 - MS MOUSE v3.0+ - DEFINE TEXT CURSOR
  131.     AX = 000Ah
  132.     BX = hardware/software text cursor
  133.         0000h software
  134.         CX = screen mask
  135.         DX = cursor mask
  136.         0001h hardware
  137.         CX = start scan line
  138.         DX = end scan line
  139. Note:    when the software cursor is selected, the character/attribute data at
  140.       the current screen position is ANDed with the screen mask and then
  141.       XORed with the cursor mask
  142. SeeAlso: AX=0009h,INT 62/AX=007Eh
  143. --------M-33000B-----------------------------
  144. INT 33 - MS MOUSE v1.0+ - READ MOTION COUNTERS
  145.     AX = 000Bh
  146. Return: CX = number of mickeys mouse moved horizontally since last call
  147.     DX = number of mickeys mouse moved vertically
  148. Notes:    a mickey is the smallest increment the mouse can sense
  149.     positive values indicate down/right
  150. SeeAlso: AX=0003h,AX=001Bh,AX=0027h
  151. --------M-33000C-----------------------------
  152. INT 33 - MS MOUSE v1.0+ - DEFINE INTERRUPT SUBROUTINE PARAMETERS
  153.     AX = 000Ch
  154.     CX = call mask (see #2426)
  155.     ES:DX -> FAR routine (see #2427)
  156. SeeAlso: AX=0018h
  157.  
  158. Bitfields for mouse call mask:
  159. Bit(s)    Description    (Table 2426)
  160.  0    call if mouse moves
  161.  1    call if left button pressed
  162.  2    call if left button released
  163.  3    call if right button pressed
  164.  4    call if right button released
  165.  5    call if middle button pressed (Mouse Systems/Logitech/Genius mouse)
  166.  6    call if middle button released (Mouse Systems/Logitech/Genius mouse)
  167.  7-15    unused
  168. Note:    some versions of the Microsoft documentation incorrectly state that CX
  169.       bit 0 means call if mouse cursor moves
  170.  
  171. (Table 2427)
  172. Values interrupt routine is called with:
  173.     AX = condition mask (same bit assignments as call mask)
  174.     BX = button state
  175.     CX = cursor column
  176.     DX = cursor row
  177.     SI = horizontal mickey count
  178.     DI = vertical mickey count
  179. Notes:    some versions of the Microsoft documentation erroneously swap the
  180.       meanings of SI and DI
  181.     in text modes, the row and column will be reported as a multiple of
  182.       the character cell size, typically 8x8 pixels
  183. --------M-33000D-----------------------------
  184. INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION ON
  185.     AX = 000Dh
  186. SeeAlso: AX=000Eh,INT 10/AH=04h
  187. --------M-33000E-----------------------------
  188. INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION OFF
  189.     AX = 000Eh
  190. SeeAlso: AX=000Dh
  191. --------M-33000F-----------------------------
  192. INT 33 - MS MOUSE v1.0+ - DEFINE MICKEY/PIXEL RATIO
  193.     AX = 000Fh
  194.     CX = number of mickeys per 8 pixels horizontally (default 8)
  195.     DX = number of mickeys per 8 pixels vertically (default 16)
  196. SeeAlso: AX=0013h,AX=001Ah,INT 62/AX=0082h
  197. --------M-330010-----------------------------
  198. INT 33 - MS MOUSE v1.0+ - DEFINE SCREEN REGION FOR UPDATING
  199.     AX = 0010h
  200.     CX,DX = X,Y coordinates of upper left corner
  201.     SI,DI = X,Y coordinates of lower right corner
  202. Note:    mouse cursor is hidden in the specified region, and needs to be
  203.       explicitly turned on again
  204. SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"Genius MOUSE",AX=0031h
  205. --------M-330010-----------------------------
  206. INT 33 - Genius MOUSE - DEFINE SCREEN REGION FOR UPDATING
  207.     AX = 0010h
  208.     ES:DX -> update region list (see #2428)
  209. Notes:    mouse cursor is hidden in the specified region, and needs to be
  210.       explicitly turned on again
  211.     this version of the call is described in an August 1988 version of the
  212.       Genius Mouse programmer's reference; it has been changed to conform
  213.       to the Microsoft version shown above by version 9.06 (and possibly
  214.       earlier versions)
  215. SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"MS MOUSE"
  216.  
  217. Format of Genius Mouse update region list:
  218. Offset    Size    Description    (Table 2428)
  219.  00h    WORD    left-most column
  220.  02h    WORD    top-most row
  221.  04h    WORD    right-most column
  222.  06h    WORD    bottom-most row
  223. --------M-330011-----------------------------
  224. INT 33 - Genius Mouse 9.06 - GET NUMBER OF BUTTONS
  225.     AX = 0011h
  226. Return: AX = FFFFh
  227.     BX = number of buttons
  228. SeeAlso: AX=0000h
  229. --------M-330012-----------------------------
  230. INT 33 - MS MOUSE - SET LARGE GRAPHICS CURSOR BLOCK
  231.     AX = 0012h
  232.     BH = cursor width in words
  233.     CH = rows in cursor
  234.     BL = horizontal hot spot (-16 to 16)
  235.     CL = vertical hot spot (-16 to 16)
  236.     ES:DX -> bit map of screen and cursor maps
  237. Return: AX = FFFFh if successful
  238. SeeAlso: AX=0009h,AX=002Ah,AX=0035h
  239. --------M-330013-----------------------------
  240. INT 33 - MS MOUSE v5.0+ - DEFINE DOUBLE-SPEED THRESHOLD
  241.     AX = 0013h
  242.     DX = threshold speed in mickeys/second, 0000h = default of 64/second
  243. Note:    if speed exceeds threshold, the cursor's on-screen motion is doubled
  244. SeeAlso: AX=000Fh,AX=001Bh,AX=002Ch
  245. --------M-330014-----------------------------
  246. INT 33 - MS MOUSE v3.0+ - EXCHANGE INTERRUPT SUBROUTINES
  247.     AX = 0014h
  248.     CX = call mask (see #2426)
  249.     ES:DX -> FAR routine
  250. Return: CX = call mask of previous interrupt routine
  251.     ES:DX = FAR address of previous interrupt routine
  252. SeeAlso: AX=000Ch,AX=0018h
  253. --------M-330015-----------------------------
  254. INT 33 - MS MOUSE v6.0+ - RETURN DRIVER STORAGE REQUIREMENTS
  255.     AX = 0015h
  256. Return: BX = size of buffer needed to store driver state
  257. SeeAlso: AX=0016h,AX=0017h,AX=0042h
  258. --------M-330016-----------------------------
  259. INT 33 - MS MOUSE v6.0+ - SAVE DRIVER STATE
  260.     AX = 0016h
  261.     BX = size of buffer (see AX=0015h)
  262.     ES:DX -> buffer for driver state
  263. Note:    although not documented (since the Microsoft driver does not use it),
  264.       many drivers appear to require BX on input
  265. SeeAlso: AX=0015h,AX=0017h
  266. --------M-330017-----------------------------
  267. INT 33 - MS MOUSE v6.0+ - RESTORE DRIVER STATE
  268.     AX = 0017h
  269.     BX = size of buffer (see AX=0015h)
  270.     ES:DX -> buffer containing saved state
  271. Notes:    although not documented (since the Microsoft driver does not use it),
  272.       many drivers appear to require BX on input
  273.     some mouse drivers range-check the values in the saved state based on
  274.       the current video mode; thus, the video mode should be restored
  275.       before the mouse driver's state is restored
  276. SeeAlso: AX=0015h,AX=0016h
  277. --------M-330018-----------------------------
  278. INT 33 - MS MOUSE v6.0+ - SET ALTERNATE MOUSE USER HANDLER
  279.     AX = 0018h
  280.     CX = call mask (see #2429)
  281.     ES:DX -> FAR routine to be invoked on mouse events (see #2430)
  282. Return: AX = status
  283.         0018h if successful
  284.         FFFFh on error
  285. Notes:    up to three handlers can be defined by separate calls to this function,
  286.       each with a different combination of shift states in the call mask;
  287.       calling this function again with a call mask of 0000h undefines the
  288.       specified handler (official documentation); specifying the same
  289.       call mask and an address of 0000h:0000h undefines the handler (real
  290.       life)
  291.     some versions of the documentation erroneously reverse the order of
  292.       the bits in the call mask
  293. SeeAlso: AX=000Ch,AX=0014h,AX=0019h
  294.  
  295. Bitfields for mouse call mask:
  296. Bit(s)    Description    (Table 2429)
  297.  0    call if mouse moves
  298.  1    call if left button pressed
  299.  2    call if left button released
  300.  3    call if right button pressed
  301.  4    call if right button released
  302.  5    call if shift button pressed during event
  303.  6    call if ctrl key pressed during event
  304.  7    call if alt key pressed during event
  305. Note:    at least one of 5-7 must be set
  306.  
  307. (Table 2430)
  308. Values user handler is called with:
  309.     AX = condition mask (same bit assignments as call mask)
  310.     BX = button state
  311.     CX = cursor column
  312.     DX = cursor row
  313.     SI = horizontal mickey count
  314.     DI = vertical mickey count
  315. Return: registers preserved
  316. Note:    in text modes, the row and column will be reported as a multiple of
  317.       the cell size, typically 8x8 pixels
  318. --------M-330019-----------------------------
  319. INT 33 - MS MOUSE v6.0+ - RETURN USER ALTERNATE INTERRUPT VECTOR
  320.     AX = 0019h
  321.     CX = call mask (see #2429)
  322. Return: BX:DX = user interrupt vector
  323.     CX = call mask (0000h if not found)
  324. Note:    attempts to find a user event handler (defined by function 18h)
  325.       whose call mask matches CX
  326. SeeAlso: AX=0018h
  327. --------M-33001A-----------------------------
  328. INT 33 - MS MOUSE v6.0+ - SET MOUSE SENSITIVITY
  329.     AX = 001Ah
  330.     BX = horizontal speed \
  331.     CX = vertical speed   / (see AX=000Fh)
  332.     DX = double speed threshold (see AX=0013h)
  333. SeeAlso: AX=0013h,AX=001Bh,INT 62/AX=0082h
  334. --------M-33001B-----------------------------
  335. INT 33 - MS MOUSE v6.0+ - RETURN MOUSE SENSITIVITY
  336.     AX = 001Bh
  337. Return: BX = horizontal speed
  338.     CX = vertical speed
  339.     DX = double speed threshold
  340. SeeAlso: AX=000Bh,AX=001Ah
  341. --------M-33001C-----------------------------
  342. INT 33 - MS MOUSE v6.0+ - SET INTERRUPT RATE
  343.     AX = 001Ch
  344.     BX = rate (see #2431)
  345. Notes:    only available on InPort mouse
  346.     values greater than 4 may cause unpredictable driver behavior
  347.  
  348. (Table 2431)
  349. Values for mouse interrupt rate:
  350.  00h    no interrupts allowed
  351.  01h    30 per second
  352.  02h    50 per second
  353.  03h    100 per second
  354.  04h    200 per second
  355. --------M-33001D-----------------------------
  356. INT 33 - MS MOUSE v6.0+ - DEFINE DISPLAY PAGE NUMBER
  357.     AX = 001Dh
  358.     BX = display page number
  359. Note:    the cursor will be displayed on the specified page
  360. SeeAlso: AX=001Eh
  361. --------M-33001E-----------------------------
  362. INT 33 - MS MOUSE v6.0+ - RETURN DISPLAY PAGE NUMBER
  363.     AX = 001Eh
  364. Return: BX = display page number
  365. SeeAlso: AX=001Dh
  366. --------M-33001F-----------------------------
  367. INT 33 - MS MOUSE v6.0+ - DISABLE MOUSE DRIVER
  368.     AX = 001Fh
  369. Return: AX = status
  370.         001Fh successful
  371.         ES:BX = INT 33 vector before mouse driver was first installed
  372.         FFFFh unsuccessful
  373. Notes:    restores vectors for INT 10 and INT 71 (8086) or INT 74 (286/386)
  374.     if you restore INT 33 to ES:BX, driver will be completely disabled
  375.     many drivers return AX=001Fh even though the driver has been disabled
  376. SeeAlso: AX=0020h
  377. --------M-330020-----------------------------
  378. INT 33 - MS MOUSE v6.0+ - ENABLE MOUSE DRIVER
  379.     AX = 0020h
  380. Return: AX = status
  381.         0020h successful
  382.         FFFFh unsuccessful
  383. Notes:    restores vectors for INT 10h and INT 71h (8086) or INT 74h (286/386)
  384.       which were removed by function 1Fh
  385.     Microsoft's documentation states that no value is returned
  386. SeeAlso: AX=001Fh
  387. --------M-330021-----------------------------
  388. INT 33 - MS MOUSE v6.0+ - SOFTWARE RESET
  389.     AX = 0021h
  390. Return: AX = status
  391.         FFFFh if mouse driver installed
  392.         BX = number of buttons (FFFFh = two buttons)
  393.         0021h if mouse driver not installed
  394. Note:    this call is identical to funtion 00h, but does not reset the mouse
  395. SeeAlso: AX=0000h
  396. --------M-330022-----------------------------
  397. INT 33 - MS MOUSE v6.0+ - SET LANGUAGE FOR MESSAGES
  398.     AX = 0022h
  399.     BX = language (see #2432)
  400. Note:    only available on international versions of the driver; US versions
  401.       ignore this call
  402. SeeAlso: AX=0023h
  403.  
  404. (Table 2432)
  405. Values for mouse driver language:
  406.  00h    English
  407.  01h    French
  408.  02h    Dutch
  409.  03h    German
  410.  04h    Swedish
  411.  05h    Finnish
  412.  06h    Spanish
  413.  07h    Portugese
  414.  08h    Italian
  415. --------M-330023-----------------------------
  416. INT 33 - MS MOUSE v6.0+ - GET LANGUAGE FOR MESSAGES
  417.     AX = 0023h
  418. Return: BX = language (see #2432)
  419. Note:    the US version of the driver always returns zero
  420. SeeAlso: AX=0022h
  421. --------M-330024-----------------------------
  422. INT 33 - MS MOUSE v6.26+ - GET SOFTWARE VERSION, MOUSE TYPE, AND IRQ NUMBER
  423.     AX = 0024h
  424. Return: AX = FFFFh on error
  425.     otherwise,
  426.         BH = major version
  427.         BL = minor version
  428.         CH = type (1=bus, 2=serial, 3=InPort, 4=PS/2, 5=HP)
  429.         CL = interrupt (0=PS/2, 2=IRQ2, 3=IRQ3,...,7=IRQ7,...,0Fh=IRQ15)
  430. SeeAlso: AX=004Dh,AX=006Dh
  431. --------M-330025-----------------------------
  432. INT 33 - MS MOUSE v6.26+ - GET GENERAL DRIVER INFORMATION
  433.     AX = 0025h
  434. Return: AX = general information (see #2433)
  435.     BX = cursor lock flag for OS/2 to prevent reentrancy problems
  436.     CX = mouse code active flag (for OS/2)
  437.     DX = mouse driver busy flag (for OS/2)
  438.  
  439. Bitfields for general mouse driver information:
  440. Bit(s)    Description    (Table 2433)
  441.  15    driver loaded as device driver rather than TSR
  442.  14    driver is newer integrated type
  443.  13,12    current cursor type
  444.     00 software text cursor
  445.     01 hardware text cursor (CRT Controller's cursor)
  446.     1X graphics cursor
  447.  11-8    interrupt rate (see #2431)
  448.  7-0    count of currently-active Mouse Display Drivers (MDD), the newer
  449.       integrated driver type
  450. --------M-330026-----------------------------
  451. INT 33 - MS MOUSE v6.26+ - GET MAXIMUM VIRTUAL COORDINATES
  452.     AX = 0026h
  453. Return: BX = mouse-disabled flag (0000h mouse enabled, nonzero disabled)
  454.     CX = maximum virtual X (for current video mode)
  455.     DX = maximum virtual Y
  456. Note:    for driver versions before 7.05, this call returns the currently-set
  457.       maximum coordinates; v7.05+ returns the absolute maximum coordinates
  458. SeeAlso: AX=0031h
  459. --------M-330026-----------------------------
  460. INT 33 - Genius Mouse 9.06 - ???
  461.     AX = 0026h
  462. Return: CX = 0204h if CX was 0105h on entry, else unchanged
  463. --------M-330027-----------------------------
  464. INT 33 - MS MOUSE v7.01+ - GET SCREEN/CURSOR MASKS AND MICKEY COUNTS
  465.     AX = 0027h
  466. Return: AX = screen-mask value (or hardware cursor scan-line start for v7.02+)
  467.     BX = cursor-mask value (or hardware cursor scan-line stop for v7.02+)
  468.     CX = horizontal mickeys moved since last call
  469.     DX = vertical mickeys moved since last call
  470. SeeAlso: AX=000Bh
  471. --------M-330028-----------------------------
  472. INT 33 - MS MOUSE v7.0+ - SET VIDEO MODE
  473.     AX = 0028h
  474.     CX = new video mode (call is NOP if 0000h)
  475.     DH = Y font size (00h = default)
  476.     DL = X font size (00h = default)
  477. Return: CL = status (00h = successful)
  478. Notes:    DX is ignored unless the selected video mode supports font size control
  479.     when CX=0000h, an internal flag that had been set by a previous call
  480.       is cleared; this is required before a mouse reset
  481. SeeAlso: AX=0029h,INT 10/AH=00h
  482. --------M-330029-----------------------------
  483. INT 33 - MS MOUSE v7.0+ - ENUMERATE VIDEO MODES
  484.     AX = 0029h
  485.     CX = previous video mode
  486.         0000h get first supported video mode
  487.         other get next supported mode after mode CX
  488. Return: CX = first/next video mode (0000h = no more video modes)
  489.     DS:DX -> description of video mode or 0000h:0000h if none
  490. Notes:    the enumerated video modes may be in any order and may repeat
  491.     the description string (if available) is terminated by '$' followed by
  492.       a NUL byte
  493. SeeAlso: AX=0028h
  494. --------M-33002A-----------------------------
  495. INT 33 - MS MOUSE v7.02+ - GET CURSOR HOT SPOT
  496.     AX = 002Ah
  497. Return: AX = internal counter controlling cursor visibility
  498.     BX = cursor hot spot column
  499.     CX = cursor hot spot row
  500.     DX = mouse type (see #2434)
  501. Note:    the hot spot location is relative to the upper left corner of the
  502.       cursor block and may range from -128 to +127 both horizontally and
  503.       vertically
  504. SeeAlso: AX=0009h,AX=0012h,AX=0035h
  505.  
  506. (Table 2434)
  507. Values for mouse type:
  508.  00h    none
  509.  01h    bus
  510.  02h    serial
  511.  03h    InPort
  512.  04h    IBM
  513.  05h    Hewlett-Packard
  514. --------M-33002B-----------------------------
  515. INT 33 - MS MOUSE v7.0+ - LOAD ACCELERATION PROFILES
  516.     AX = 002Bh
  517.     BX = active acceleration profile
  518.         0001h-0004h or FFFFh to restore default curves
  519.     ES:SI -> buffer containing acceleration profile data (see #2435)
  520. Return: AX = success flag
  521. SeeAlso: AX=002Ch,AX=002Dh,AX=0033h
  522.  
  523. Format of acceleration profile data:
  524. Offset    Size    Description    (Table 2435)
  525.  00h    BYTE    length of acceleration profile 1
  526.  01h    BYTE    length of acceleration profile 2
  527.  02h    BYTE    length of acceleration profile 3
  528.  03h    BYTE    length of acceleration profile 4
  529.  04h 32 BYTEs    threshold speeds for acceleration profile 1
  530.  24h 32 BYTEs    threshold speeds for acceleration profile 2
  531.  44h 32 BYTEs    threshold speeds for acceleration profile 3
  532.  64h 32 BYTEs    threshold speeds for acceleration profile 4
  533.  84h 32 BYTEs    speedup factor for acceleration profile 1
  534.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  535.  A4h 32 BYTEs    speedup factor for acceleration profile 2
  536.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  537.  C4h 32 BYTEs    speedup factor for acceleration profile 3
  538.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  539.  E4h 32 BYTEs    speedup factor for acceleration profile 4
  540.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  541. 104h 16 BYTEs    name of acceleration profile 1 (blank-padded)
  542. 114h 16 BYTEs    name of acceleration profile 2 (blank-padded)
  543. 124h 16 BYTEs    name of acceleration profile 3 (blank-padded)
  544. 134h 16 BYTEs    name of acceleration profile 4 (blank-padded)
  545. Note:    unused bytes in the threshold speed fields are filled with 7Fh and
  546.       unused bytes in the speedup factor fields are filled with 10h
  547. --------M-33002C-----------------------------
  548. INT 33 - MS MOUSE v7.0+ - GET ACCELERATION PROFILES
  549.     AX = 002Ch
  550. Return: AX = status (0000h success)
  551.     BX = currently-active acceleration profile
  552.     ES:SI -> acceleration profile data (see #2435)
  553. SeeAlso: AX=002Bh,AX=002Dh,AX=0033h
  554. --------M-33002D-----------------------------
  555. INT 33 - MS MOUSE v7.0+ - SELECT ACCELERATION PROFILE
  556.     AX = 002Dh
  557.     BX = acceleration level
  558.         0001h-0004h to set profile, or FFFFh to get current profile
  559. Return: AX = status
  560.         0000h successful
  561.         ES:SI -> 16-byte blank-padded name of acceleration profile
  562.         FFFEh invalid acceleration curve number
  563.         ES:SI destroyed
  564.     BX = active acceleration curve number
  565. SeeAlso: AX=0013h,AX=002Bh,AX=002Ch,AX=002Eh
  566. --------M-33002E-----------------------------
  567. INT 33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILE NAMES
  568.     AX = 002Eh
  569.     BL = flag (if nonzero, fill ES:SI buffer with default names on return)
  570.     ES:SI -> 64-byte buffer containing profile names (16 bytes per name)
  571. Return: AX = status (0000h success)
  572.         FFFEh error for ATI Mouse driver
  573.     ES:SI buffer filled with default names if BL nonzero on entry
  574. Notes:    not supported by Logitech driver v6.10
  575.     supported by ATI Mouse driver v7.04
  576. SeeAlso: AX=002Ch,AX=002Dh,AX=012Eh,AX=022Eh
  577. --------M-33002F-----------------------------
  578. INT 33 - MS MOUSE v7.02+ - MOUSE HARDWARE RESET
  579.     AX = 002Fh
  580. Return: AX = status
  581. Note:    invoked by mouse driver v8.20 on being called with INT 2F/AX=530Bh
  582. SeeAlso: INT 2F/AH=53h
  583. --------M-330030-----------------------------
  584. INT 33 - MS MOUSE v7.04+ - GET/SET BallPoint INFORMATION
  585.     AX = 0030h
  586.     CX = command
  587.         0000h get status of BallPoint device
  588.         other set rotation angle and masks
  589.         BX = rotation angle (-32768 to 32767 degrees)
  590.         CH = primary button mask
  591.         CL = secondary button mask
  592. Return: AX = button status (FFFFh if no BallPoint) (see #2436)
  593.     BX = rotation angle (0-360 degrees)
  594.     CH = primary button mask
  595.     CL = secondary button mask
  596. Note:    not supported by the ATI Mouse driver which calls itself v7.04
  597.  
  598. Bitfields for BallPoint mouse button status:
  599. Bit(s)    Description    (Table 2436)
  600.  5    button 1
  601.  4    button 2
  602.  3    button 3
  603.  2    button 4
  604.  other    zero
  605. --------M-330031-----------------------------
  606. INT 33 - MS MOUSE v7.05+ - GET CURRENT MINIMUM/MAXIMUM VIRTUAL COORDINATES
  607.     AX = 0031h
  608. Return: AX = virtual X minimum
  609.     BX = virtual Y minimum
  610.     CX = virtual X maximum
  611.     DX = virtual Y maximum
  612. Note:    the minimum and maximum values are those set by AX=0007h and AX=0008h;
  613.       the default is minimum = 0 and maximum = absolute maximum
  614.       (see AX=0026h)
  615. SeeAlso: AX=0007h,AX=0008h,AX=0010h,AX=0026h
  616. --------M-330032-----------------------------
  617. INT 33 - MS MOUSE v7.05+ - GET ACTIVE ADVANCED FUNCTIONS
  618.     AX = 0032h
  619. Return: AX = active function flags (FFFFh for v8.10)
  620.         bit 15: function 0025h supported
  621.         bit 14: function 0026h supported
  622.         ...
  623.         bit 0:  function 0034h supported
  624.     BX = ??? (0000h) officially unused
  625.     CX = ??? (E000h) officially unused
  626.     DX = ??? (0000h) officially unused
  627. Note:    the Italian version of MS MOUSE v8.20 reportedly indicates that
  628.       functions 0033h and 0034h are not supported even though they are
  629. --------M-330033-----------------------------
  630. INT 33 - MS MOUSE v7.05+ - GET SWITCH SETTINGS AND ACCELERATION PROFILE DATA
  631.     AX = 0033h
  632.     CX = size of buffer
  633.         0000h get required buffer size
  634.         Return: AX = 0000h
  635.             CX = required size (0154h for Logitech v6.10, 0159h
  636.                 for MS v8.10-8.20)
  637.         other
  638.         ES:DX -> buffer of CX bytes for mouse settings
  639.         Return: AX = 0000h
  640.             CX = number of bytes returned
  641.             ES:DX buffer filled (see #2437)
  642. SeeAlso: AX=002Bh
  643.  
  644. Format of mouse settings data buffer:
  645. Offset    Size    Description    (Table 2437)
  646.  00h    BYTE    mouse type
  647.  01h    BYTE    current language
  648.  02h    BYTE    horizontal sensitivity (00h-64h)
  649.  03h    BYTE    vertical sensitivity (00h-64h)
  650.  04h    BYTE    double-speed threshold (00h-64h)
  651.  05h    BYTE    ballistic curve (01h-04h)
  652.  06h    BYTE    interrupt rate (01h-04h)
  653.  07h    BYTE    cursor override mask
  654.  08h    BYTE    laptop adjustment
  655.  09h    BYTE    memory type (00h-02h)
  656.  0Ah    BYTE    SuperVGA support (00h,01h)
  657.  0Bh    BYTE    rotation angle
  658.  0Ch    BYTE    ???
  659.  0Dh    BYTE    primary button (01h-04h)
  660.  0Eh    BYTE    secondary button (01h-04h)
  661.  0Fh    BYTE    click lock enabled (00h,01h)
  662.  10h 324 BYTEs    acceleration profile data (see #2435)
  663. 154h  5 BYTEs    ??? (Microsoft driver, but not Logitech)
  664. --------M-330034-----------------------------
  665. INT 33 - MS MOUSE v8.0+ - GET INITIALIZATION FILE
  666.     AX = 0034h
  667. Return: AX = status (0000h successful)
  668.     ES:DX -> ASCIZ initialization (.INI) file name
  669. --------M-330035-----------------------------
  670. INT 33 - MS MOUSE v8.10+ - LCD SCREEN LARGE POINTER SUPPORT
  671.     AX = 0035h
  672.     BX = function
  673.         FFFFh get current settings
  674.         Return: AX = 0000h
  675.             BH = style (see #2438)
  676.             BL = size (see #2439)
  677.             CH = threshold (00h-64h)
  678.             CL = active flag (00h disabled, 01h enabled)
  679.             DX = delay
  680.         other
  681.         BH = pointer style (see #2438)
  682.         BL = size (see #2439)
  683.         CH = threshold (00h-64h)
  684.         CL = active flag (00h disable size change, 01h enable)
  685.         DX = delay (0000h-0064h)
  686.         Return: AX = 0000h
  687. Note:    not supported by Logitech driver v6.10
  688. SeeAlso: AX=0012h,AX=002Ah
  689.  
  690. (Table 2438)
  691. Values for pointer style:
  692.  00h    normal
  693.  01h    reverse
  694.  02h    transparent
  695. SeeAlso: #2439
  696.  
  697. (Table 2439)
  698. Values for pointer size:
  699.  00h    small ("1")
  700.  01h    medium ("1.5")
  701.  02h    large ("2")
  702. SeeAlso: #2438
  703. --------M-330042-----------------------------
  704. INT 33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS
  705.     AX = 0042h
  706. Return: AX = status
  707.         0000h MSMOUSE not installed
  708.         0042h functions 42h, 50h, and 52h not supported
  709.         FFFFh successful
  710.         BX = buffer size in bytes for functions 50h and 52h
  711. Note:    this function is also supported by the Genius Mouse 9.06 driver
  712. SeeAlso: AX=0015h,AX=0050h,AX=0052h
  713. --------M-330043-----------------------------
  714. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CONFIGURE MOUSE???
  715.     AX = 0043h
  716.     CX:BX -> configuration buffer (see #2440)
  717.     DL = ???
  718. Return: ???
  719. Notes:    also calls routines for INT 33/AX=0053h and INT 33/AX=004Fh
  720.     this function is also supported by the Genius Mouse 9.06 driver
  721.  
  722. Format of Mouse Systems configuration buffer:
  723. Offset    Size    Description    (Table 2440)
  724.  00h    WORD    I/O port address
  725.  02h    BYTE    ???
  726.  03h    BYTE    interrupt number
  727.  04h    BYTE    interrupt mask for interrupt controller
  728.  05h  5 BYTEs    ???
  729. --------M-330044CXCDEF-----------------------
  730. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE IGNORE ACCELERATION CMDS
  731.     AX = 0044h
  732.     CX = CDEFh
  733. Return: AX = new state of "Ignore Application Acceleration Commands" flag
  734. Note:    this function is also supported by the Genius Mouse 9.06 driver
  735. SeeAlso: AX=0045h
  736. --------M-330045CXCDEF-----------------------
  737. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE RESOLUTION DOUBLING
  738.     AX = 0045h
  739.     CX = CDEFh
  740. Return: AX = new state of resolution doubling flag
  741. Note:    this function is also supported by the Genius Mouse 9.06 driver
  742. SeeAlso: AX=0044h
  743. --------M-330047-----------------------------
  744. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET BUTTON ASSIGNMENTS
  745.     AX = 0047h
  746.     ES:BX -> button assignments (3 bytes, combinations of "L", "M", "R")
  747. Return: ???
  748. Note:    also supported by Genius Mouse 9.06 driver
  749. SeeAlso: AX=0067h
  750. --------M-330048BXCDEF-----------------------
  751. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET ???
  752.     AX = 0048h
  753.     BX = CDEFh
  754. Return: CX = ???
  755.     BH = ???
  756.     BL = ??? (if 50h, driver is using PS/2 pointing device BIOS interface)
  757. Note:    also supported by Genius Mouse 9.06 driver
  758. --------M-33004B-----------------------------
  759. INT 33 - LCS/Telegraphics MOUSE DRIVERS - INSTALLATION CHECK / GET VERSION
  760.     AX = 004Bh
  761. Return: ES:DI -> ASCIZ signature/description string if installed (see #2441)
  762.  
  763. (Table 2441)
  764. Values for LCS/Telegraphics mouse driver OEM signature/description string:
  765.  "Primax Generic;Universal Mouse Driver;IMOUSE;v8.20i"
  766.  "Synaptics;TouchPad Driver;SYNTOUCH;v2.26"
  767.  "Z-NIX;BUS,AUX,Serial 3-byte and 5-byte Mouse Driver;ZMOUSE;v7.04d"
  768. Note:    the string consists of OEM, driver description, driver name, and
  769.       version number
  770. --------M-33004CBXCDEF-----------------------
  771. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ??? FLAG
  772.     AX = 004Ch
  773.     BX = CDEFh
  774. Note:    also supported by Genius Mouse 9.06
  775. SeeAlso: AX=006Ch
  776. --------M-33004D-----------------------------
  777. INT 33 - MS MOUSE - RETURN POINTER TO COPYRIGHT STRING
  778.     AX = 004Dh
  779. Return: ES:DI -> copyright message "*** This is Copyright 1983 Microsoft" or
  780.         "Copyright 19XX...."
  781. Notes:    also supported by Logitech, Kraft, Genius Mouse, and Mouse Systems
  782.       mouse drivers
  783.     in the Genius Mouse 9.06 driver, the ASCIZ signature "KYE" immediately
  784.       follows the above copyright message (KYE Corp. manufactures the
  785.       driver)
  786. SeeAlso: AX=0024h,AX=006Dh,AX=0666h
  787. --------M-33004F-----------------------------
  788. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ENABLE MOUSE
  789.     AX = 004Fh
  790. Return: nothing
  791. Note:    also supported by Genius Mouse 9.06
  792. SeeAlso: AX=0043h,AX=0053h
  793. --------M-330050-----------------------------
  794. INT 33 - PCMOUSE - SAVE MSMOUSE STATE
  795.     AX = 0050h
  796.     BX = buffer size (ignored by some driver versions)
  797.     ES:DX -> buffer
  798. Return: AX = FFFFh if successful
  799. Notes:    the buffer must be large enough to hold the entire state, or following
  800.       data will be overwritten by state data in versions which ignore BX;
  801.       use INT 33/AX=0042h to get the required size
  802.     this function is also supported by the Genius Mouse 9.06 driver
  803. SeeAlso: AX=0042h,AX=0052h
  804. --------M-330052-----------------------------
  805. INT 33 - PCMOUSE - RESTORE MSMOUSE STATE
  806.     AX = 0052h
  807.     BX = buffer size (ignored by some driver versions)
  808.     ES:DX -> buffer
  809. Return: AX = FFFFh if successful
  810. Note:    also supported by Genius Mouse 9.06 driver
  811. SeeAlso: AX=0050h
  812. --------M-330053-----------------------------
  813. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - DISABLE MOUSE
  814.     AX = 0053h
  815. Return: nothing
  816. Note:    also supported by Genius Mouse 9.06
  817. SeeAlso: AX=0043h,AX=004Fh
  818. --------M-330054CXCDEF-----------------------
  819. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SELECT ULTRARES ACCELERATION LEVEL
  820.     AX = 0054h
  821.     CX = CDEFh
  822.     BX = new acceleration level (0-9)
  823. Return: ???
  824. Note:    this function is also supported by the Genius Mouse 9.06 driver
  825. SeeAlso: AX=005Ah
  826. --------M-330055-----------------------------
  827. INT 33 - Kraft Mouse - GET ???
  828.     AX = 0055h
  829. Return: CX = ???
  830.     DX = ???
  831.     ES = ???
  832. --------M-330058-----------------------------
  833. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  834.     AX = 0058h
  835. Return: AX = CS of driver
  836.     CX:BX = original INT 33 vector
  837.     DX = ???
  838. Note:    this function is also supported by the Genius Mouse 9.06 driver
  839. --------M-33005A-----------------------------
  840. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ULTRARES ACCELERATIONS
  841.     AX = 005Ah
  842.     CX = number of WORDs to copy (max 0014h, but not range-checked)
  843.     DX:SI -> buffer containing thresholds??? (CX words)
  844.     DX:BX -> buffer containing acceleration values???
  845.         (9*14h words, only first CX of each 14h used)
  846.     ???
  847. Return: CF clear
  848.     ???
  849. Note:    this function is also supported by Genius Mouse 9.06
  850. SeeAlso: AX=0054h
  851. --------M-330061BXCDEF-----------------------
  852. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  853.     AX = 0061h
  854.     BX = CDEFh
  855. Return: CX = ???
  856. Note:    also supported by Genius Mouse 9.06
  857. --------M-330067-----------------------------
  858. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET MOUSE BUTTONS???
  859.     AX = 0067h
  860. Return: BL = number of buttons???
  861. Note:    also supported by Genius Mouse 9.06
  862. SeeAlso: AX=0047h
  863. --------M-33006A-----------------------------
  864. INT 33 U - ATI Mouse - INSTALLATION CHECK
  865.     AX = 006Ah
  866. Return: AL = AAh
  867.     AH = ???
  868.     BH = ???
  869.     BL = ???
  870.     CL = ???
  871.     CH = ???
  872. Program: ATI's MOUSE.COM and MOUSE.SYS are drivers for the mouse port found on
  873.       some of ATI's video adapters
  874. SeeAlso: AX=006Dh
  875. --------M-33006C-----------------------------
  876. INT 33 U - TRUEDOX Mouse driver v4.01 - GET/SET HARDWARE PARAMETERS
  877.     AX = 006Ch
  878.     BX = new IRQ (0003h or 0004h), or 0000h to get current values only
  879.     CL = new IRQmask (sent to 8259)
  880.     DX = new base I/O port
  881. Return: BX = current IRQ
  882.     DX = light pen state???
  883. Note:    this is the mouse driver for the Dell Dimension series of computers, by
  884.       TRUEDOX Technology Corporation
  885. SeeAlso: AX=00A1h,AX=0666h
  886. --------M-33006CBXCDEF-----------------------
  887. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CLEAR ??? FLAG
  888.     AX = 006Ch
  889.     BX = CDEFh
  890. Note:    also supported by Genius Mouse 9.06
  891. SeeAlso: AX=004Ch
  892. --------M-33006D-----------------------------
  893. INT 33 - MS MOUSE - GET VERSION STRING
  894.     AX = 006Dh
  895. Return: ES:DI -> Microsoft version number of resident driver (see #2442)
  896. Notes:    also supported by Logitech, Mouse Systems, Kraft, and Genius mouse
  897.       drivers
  898.     the Mouse Systems 7.01 and Genius Mouse 9.06 drivers report their
  899.       Microsoft version as 7.00 even though they do not support any of the
  900.       functions from 0025h through 002Dh supported by the MS 7.00 driver
  901.       (the Genius Mouse driver supports function 0026h, but it differs
  902.       from the Microsoft function)
  903.     the TRUEDOX 4.01 driver reports its version as 6.26 through this call,
  904.       but as 6.24 through AX=0024h
  905. SeeAlso: AX=0024h,AX=004Dh,AX=006Ah,AX=266Ch
  906.  
  907. Format of Microsoft version number:
  908. Offset    Size    Description    (Table 2442)
  909.  00h    BYTE    major version
  910.  01h    BYTE    minor version (BCD)
  911. --------M-330070BXABCD-----------------------
  912. INT 33 - Mouse Systems MOUSE DRIVER - POPUP.COM - INSTALLATION CHECK
  913.     AX = 0070h
  914.     BX = ABCDh
  915. Return: AX = ABCDh if installed
  916.         BX:CX -> data structure (see #2443)
  917. Notes:    this function is also supported by the Genius Mouse 9.06 driver
  918.     the v7.01 POPUP.COM and menu drivers also check for the signature
  919.       CDh ABh BAh DCh at offset -2Ch from the interrupt handler
  920.     if POPUP is not loaded, the returned data structure contains the proper
  921.       signature at offset 00h, but not at offset 08h
  922.  
  923. Format of Mouse Systems POPUP.COM data structure:
  924. Offset    Size    Description    (Table 2443)
  925.  00h    WORD    signature ABCDh
  926.  02h    DWORD    pointer to info structure??? (see #2444)
  927.  06h  2 BYTEs    ???
  928.  08h    WORD    signature ABCDh
  929.  
  930. Format of Mouse Systems POPUP.COM info structure:
  931. Offset    Size    Description    (Table 2444)
  932.  00h    WORD    driver version
  933.  02h  8 BYTEs    ???
  934.  0Ah    WORD    segment of ???
  935.     ???
  936. --------M-330072BXABCD-----------------------
  937. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  938.     AX = 0072h
  939.     BX = ABCDh
  940. Return: ???
  941. Note:    this function is also supported by the Genius Mouse 9.06 driver
  942. --------M-330073BXCDEF-----------------------
  943. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET BUTTON ASSIGNMENTS
  944.     AX = 0073h
  945.     BX = CDEFh
  946.     ES:DX -> 3-byte buffer for button assignments
  947. Return: CX = number of buttons???
  948.     ES:DX buffer filled (default is "LMR")
  949. Note:    also supported by Genius Mouse 9.06
  950. SeeAlso: AX=0067h
  951. --------M-3300A0-----------------------------
  952. INT 33 U - TRUEDOX Mouse driver - SET HARDWARE PC MODE (3 button)
  953.     AX = 00A0h
  954. Return: nothing
  955. Note:    this function is only available if the mouse mode is switchable
  956.       through the power pins
  957. SeeAlso: AX=006Ch"TRUEDOX",AX=00A1h"TRUEDOX"
  958. --------M-3300A1-----------------------------
  959. INT 33 U - TRUEDOX Mouse driver - SET HARDWARE MS MODE (2 button)
  960.     AX = 00A1h
  961. Return: nothing
  962. Notes:    this function is only available if the mouse mode is switchable
  963.       through the power pins
  964.     this is the mouse driver for the Dell Dimension series of computers, by
  965.       TRUEDOX Technology Corporation
  966. SeeAlso: AX=006Ch"TRUEDOX",AX=00A0h"TRUEDOX",AX=00A6h,AX=0666h
  967. --------M-3300A6-----------------------------
  968. INT 33 U - TRUEDOX Mouse driver - SET RESOLUTION
  969.     AX = 00A6h
  970.     BX = new software resolution
  971.         0001h 50-200 dpi
  972.         0002h 200-400 dpi
  973.         0003h 400-800 dpi
  974. Note:    this is the mouse driver for the Dell Dimension series of computers, by
  975.       TRUEDOX Technology Corporation
  976. SeeAlso: AX=00A0h,AX=00A1h,AX=0666h
  977. --------M-3300B0-----------------------------
  978. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  979.     AX = 00B0h
  980.     ???
  981. Return: ???
  982. --------M-3300F0-----------------------------
  983. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  984.     AX = 00F0h
  985.     ???
  986. Return: ???
  987. --------M-3300F1-----------------------------
  988. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  989.     AX = 00F1h
  990.     ???
  991. Return: ???
  992. --------M-3300F2-----------------------------
  993. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  994.     AX = 00F2h
  995.     ???
  996. Return: ???
  997. --------M-3300F3-----------------------------
  998. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  999.     AX = 00F3h
  1000.     ???
  1001. Return: ???
  1002. --------M-330100CX4752-----------------------
  1003. INT 33 - GRTMOUSE v1.00+ - INSTALLATION CHECK
  1004.     AX = 0100h
  1005.     CX = 4752h ('GR')
  1006.     DX = 544Dh ('TM')
  1007. Return: AX = 474Dh ('GM') if installed
  1008.         CX = version number (CH = major, CL = minor)
  1009. Program: GRTMOUSE is a graphical-cursor driver for textmode by Tommer Leyvand
  1010. SeeAlso: AX=0101h,AX=0102h,AX=0103h,AX=0104h
  1011. --------M-330101-----------------------------
  1012. INT 33 - GRTMOUSE v1.00+ - SET MOUSE CURSOR SHAPE
  1013.     AX = 0101h
  1014.     DS:SI -> 16-byte cursor pattern
  1015. Return: CF clear if successful
  1016. SeeAlso: AX=0100h,AX=0102h
  1017. --------M-330102-----------------------------
  1018. INT 33 - GRTMOUSE v1.00+ - GET MOUSE CURSOR SHAPE
  1019.     AX = 0102h
  1020.     ES:DI -> 16-byte buffer for cursor pattern
  1021. SeeAlso: AX=0100h,AX=0101h
  1022. --------M-330103-----------------------------
  1023. INT 33 - GRTMOUSE v1.00+ - SET ACTIVE CHARACTERS
  1024.     AX = 0103h
  1025.     CH,CL,DH,DL = ASCII codes to be remapped to display mouse pointer
  1026. Note:    the default active characters are D0h,D1h,D6h,D8h; the active
  1027.      characters should be in the range C0h to DFh
  1028. SeeAlso: AX=0100h,AX=0104h
  1029. --------M-330104-----------------------------
  1030. INT 33 - GRTMOUSE v1.00+ - GET ACTIVE CHARACTERS
  1031.     AX = 0104h
  1032. Return: CH,CL,DH,DL = ASCII codes for the active characters
  1033. SeeAlso: AX=0100h,AX=0103h
  1034. --------M-33012E-----------------------------
  1035. INT 33 - MS MOUSE v8.10+ - ???
  1036.     AX = 012Eh
  1037.     BL = ???
  1038. Return: AX = 0000h (MS)
  1039.     AX = FFFFh (ATI Mouse v7.04)
  1040. Note:    not supported by Logitech driver v6.10
  1041. SeeAlso: AX=002Eh,AX=022Eh
  1042. --------M-33022E-----------------------------
  1043. INT 33 - MS MOUSE v8.10+ - ???
  1044.     AX = 022Eh
  1045.     BL = ???
  1046. Return: AX = 0000h (MS)
  1047.     AX = FFFFh (ATI Mouse v7.04)
  1048. Note:    not supported by Logitech driver v6.10
  1049. SeeAlso: AX=002Eh,AX=012Eh
  1050. --------M-330666-----------------------------
  1051. INT 33 U - TRUEDOX Mouse driver v4.01 - GET COPYRIGHT STRING
  1052.     AX = 0666h
  1053. Return: DX:AX -> ASCII "Copyright 1987-1992 TRUEDOX Technology Corporation"
  1054. Note:    this is the mouse driver for the Dell Dimension series of computers,
  1055.       by TRUEDOX Technology Corporation
  1056. SeeAlso: AX=004Dh,AX=00A6h,AX=0666h
  1057. --------M-33136C-----------------------------
  1058. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1059.     AX = 136Ch
  1060.     BX = ???
  1061. Return: AX = ???
  1062.     BX = ???
  1063. --------M-33146C-----------------------------
  1064. INT 33 - LOGITECH MOUSE v6.10+ - GET/SET ???
  1065.     AX = 146Ch
  1066.     BL = function
  1067.         00h set ???
  1068.         BH = new value (zero/nonzero to clear/set)
  1069.         else get ???
  1070.         Return: ???
  1071. --------M-33156C-----------------------------
  1072. INT 33 - LOGITECH MOUSE v6.10+ - GET SIGNATURE AND VERSION STRINGS
  1073.     AX = 156Ch
  1074. Return: ES:DI -> signature "LOGITECH MOUSE DRIVER"
  1075.     ES:SI -> version string, terminated with CRLF
  1076. --------M-33166C-----------------------------
  1077. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1078.     AX = 166Ch
  1079.     BL = ???
  1080.         00h ???
  1081.         01h ???
  1082.         other ???
  1083.         BH = new value of ???
  1084.         Return: AX = FFFFh
  1085. --------M-33176C-----------------------------
  1086. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1087.     AX = 176Ch
  1088.     ???
  1089. Return: ???
  1090. --------M-33186C-----------------------------
  1091. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1092.     AX = 186Ch
  1093.     ???
  1094. Return: ???
  1095. --------M-33196C-----------------------------
  1096. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1097.     AX = 196Ch
  1098.     ???
  1099. Return: ???
  1100. --------M-331A6C-----------------------------
  1101. INT 33 - LOGITECH MOUSE v6.10+ - GET ???
  1102.     AX = 1A6Ch
  1103. Return: AX = FFFFh
  1104.     BX = ???
  1105.     CX = ???
  1106. SeeAlso: AX=1B6Ch
  1107. --------M-331B6C-----------------------------
  1108. INT 33 - LOGITECH MOUSE v6.10+ - SET ???
  1109.     AX = 1B6Ch
  1110.     BX = new value for ??? (0000h-0003h)
  1111. Return: AX = FFFFh
  1112. SeeAlso: AX=1A6Ch
  1113. --------M-331C6C-----------------------------
  1114. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1115.     AX = 1C6Ch
  1116.     BX = ???
  1117.         <42h ???
  1118.         =42h ???
  1119.         >42h ???
  1120.         ES:DI -> ???
  1121.         Return: AX = ???
  1122. --------M-331D6C-----------------------------
  1123. INT 33 - LOGITECH MOUSE - GET COMPASS PARAMETER
  1124.     AX = 1D6Ch
  1125. Return: BX = direction (0=north, 1=south, 2=east, 3=west)
  1126. SeeAlso: AX=1E6Ch
  1127. --------M-331E6C-----------------------------
  1128. INT 33 - LOGITECH MOUSE - SET COMPASS PARAMETER
  1129.     AX = 1E6Ch
  1130.     BX = direction (0=north, 1=south, 2=east, 3=west)
  1131. SeeAlso: AX=1D6Ch
  1132. --------M-331F6C-----------------------------
  1133. INT 33 - LOGITECH MOUSE - GET BALLISTICS INFORMATION
  1134.     AX = 1F6Ch
  1135. Return: BX = 0=off, 1=on
  1136.     CX = 1=low, 2=high
  1137. SeeAlso: AX=002Ch,AX=236Ch
  1138. --------M-33206C-----------------------------
  1139. INT 33 - LOGITECH MOUSE - SET LEFT OR RIGHT PARAMETER
  1140.     AX = 206Ch
  1141.     BX = parameter (00h = right, FFh = left)
  1142. SeeAlso: AX=216Ch
  1143. --------M-33216C-----------------------------
  1144. INT 33 - LOGITECH MOUSE - GET LEFT OR RIGHT PARAMETER
  1145.     AX = 216Ch
  1146. Return: BX = parameter (00h = right, FFh = left)
  1147. SeeAlso: AX=206Ch
  1148. --------M-33226C-----------------------------
  1149. INT 33 - LOGITECH MOUSE - REMOVE DRIVER FROM MEMORY
  1150.     AX = 226Ch
  1151. Note:    this only frees memory; does not restore hooked interrupts
  1152. --------M-33236C-----------------------------
  1153. INT 33 - LOGITECH MOUSE - SET BALLISTICS INFORMATION
  1154.     AX = 236Ch
  1155.     BX = 0=off, 1=on
  1156.     CX = 1=low, 2=high
  1157. SeeAlso: AX=002Ch,AX=1F6Ch
  1158. --------M-33246C-----------------------------
  1159. INT 33 - LOGITECH MOUSE - GET PARAMETERS AND RESET SERIAL MOUSE
  1160.     AX = 246Ch
  1161.     ES:DX -> parameter table buffer (see #2445)
  1162. Return: AX = FFFFh if driver installed for serial mouse
  1163. SeeAlso: AX=0000h,AX=256Ch/BX=0000h,AX=256Ch/BX=0001h,AX=256Ch/BX=0003h
  1164.  
  1165. Format of Logitech Mouse parameter table:
  1166. Offset    Size    Description    (Table 2445)
  1167.  00h    WORD    baud rate divided by 100  (serial mouse only)
  1168.  02h    WORD    emulation          (serial mouse only)
  1169.  04h    WORD    report rate          (serial mouse only)
  1170.  06h    WORD    firmware revision      (serial mouse only)
  1171.  08h    WORD    00h              (serial mouse only)
  1172.  0Ah    WORD    port              (serial mouse only)
  1173.  0Ch    WORD    physical buttons
  1174.  0Eh    WORD    logical buttons
  1175. --------M-33256CBX0000-----------------------
  1176. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET BAUD RATE (SERIAL MOUSE ONLY)
  1177.     AX = 256Ch
  1178.     BX = 0000h
  1179.     CX = rate (0=1200, 1=2400, 2=4800, 3=9600)
  1180. Return: AX = FFFFh if driver installed for serial mouse
  1181. SeeAlso: AX=246Ch,AX=256Ch/BX=0001h,AX=256Ch/BX=0002h,AX=276Ch
  1182. --------M-33256CBX0001-----------------------
  1183. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET EMULATION (SERIAL MOUSE ONLY)
  1184.     AX = 256Ch
  1185.     BX = 0001h
  1186.     CX = emulation type (see #2446)
  1187. Return: AX = FFFFh if driver installed for serial mouse
  1188. SeeAlso: AX=246Ch,AX=256Ch/BX=0000h,AX=256Ch/BX=0003h,AX=276Ch
  1189.  
  1190. (Table 2446)
  1191. Values for Logitech mouse emulation type:
  1192.  00h    5 byte packed binary
  1193.  01h    3 byte packed binary
  1194.  02h    hexadecimal
  1195.  03h    relative bit pad
  1196.  04h    not supported
  1197.  05h    MM Series
  1198.  06h    not supported
  1199.  07h    Microsoft
  1200. --------M-33256CBX0002-----------------------
  1201. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET REPORT RATE (SERIAL MOUSE ONLY)
  1202.     AX = 256Ch
  1203.     BX = 0002h
  1204.     CX = rate (0=10, 1=20, 2=35, 3=50, 4=70, 5=100, 6=150)
  1205. Return: AX = FFFFh if driver installed for serial mouse
  1206. SeeAlso: AX=246Ch,AX=256Ch/BX=0001h,AX=256Ch/BX=0003h,AX=276Ch
  1207. --------M-33256CBX0003-----------------------
  1208. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE PORT (SERIAL MOUSE ONLY)
  1209.     AX = 256Ch
  1210.     BX = 0003h
  1211.     CX = port (1, 2)
  1212. Return: AX = FFFFh if driver installed for serial mouse
  1213. SeeAlso: AX=246Ch,AX=256Ch/BX=0000h,AX=256Ch/BX=0004h,AX=276Ch
  1214. --------M-33256CBX0004-----------------------
  1215. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE LOGICAL BUTTONS
  1216.     AX = 256Ch
  1217.     BX = 0004h
  1218.     CX = buttons (2, 3)
  1219. Return: AX = FFFFh if driver installed for serial mouse
  1220. SeeAlso: AX=246Ch,AX=276Ch
  1221. --------M-33266C-----------------------------
  1222. INT 33 - LOGITECH MOUSE - GET VERSION???
  1223.     AX = 266Ch
  1224. Return: BX = 'SS'
  1225.     CH = '4'  major version number
  1226.     CL = '1'  minor version number
  1227. SeeAlso: AX=006Dh
  1228. --------M-33276C-----------------------------
  1229. INT 33 - LOGITECH MOUSE - ??? Tries MMSeries, Baud 2400
  1230.     AX = 276Ch
  1231. SeeAlso: AX=256Ch
  1232. --------M-333000-----------------------------
  1233. INT 33 - Smooth Mouse Driver, PrecisePoint - INSTALLATION CHECK
  1234.     AX = 3000h
  1235. Return: AX = FFFFh if installed
  1236.         BX = version number (BH = major, BL = minor)
  1237. Program: SMD is a programmer's library by Andy Hakim which provides a
  1238.       graphics-style mouse cursor in text mode.  PrecisePoint is an
  1239.       SMD-based TSR which replaces the block mouse cursor in text
  1240.       applications.
  1241. SeeAlso: AX=0000h,AX=3001h,AX=3003h
  1242. --------M-333001-----------------------------
  1243. INT 33 - Smooth Mouse Driver, PrecisePoint - ENABLE SMOOTH MOUSE
  1244.     AX = 3001h
  1245. Return: AX = status (0000h = disabled, 0001h = enabled)
  1246. Note:    SMD remains disabled if running under Desqview or in graphics mode
  1247. SeeAlso: AX=0001h,AX=0002h,AX=3002h
  1248. --------M-333002-----------------------------
  1249. INT 33 - Smooth Mouse Driver, PrecisePoint - DISABLE SMOOTH MOUSE
  1250.     AX = 3002h
  1251. Return: AX = status (0000h = disabled, 0001h = enabled)
  1252. SeeAlso: AX=0001h,AX=0002h,AX=3000h,AX=3001h
  1253. --------M-333003-----------------------------
  1254. INT 33 - Smooth Mouse Driver, PrecisePoint - GET INFORMATION
  1255.     AX = 3003h
  1256.     BL = data structure selector
  1257.         00h Primary Bitmap (used for 25 line mode) (see #2447)
  1258.         01h Secondary Bitmap (used for 43/50 line modes) (see #2447)
  1259.         02h Sacrifice Character Map (see #2448)
  1260.         03h Program Information (see #2449)
  1261. Return: ES:DX -> selected data structure
  1262. SeeAlso: AX=3000h
  1263.  
  1264. Format of Primary/Secondary Bitmap [SMD_BITMAP_STRUCT]:
  1265. Offset    Size    Description    (Table 2447)
  1266.  00h    BYTE    vertical size of bitmap (00h - 10h)
  1267.  01h    BYTE    horizontal size of bitmap (00h - 10h)
  1268.  02h    BYTE    vertical hotspot position (00h - 10h)
  1269.  03h    BYTE    horizontal hotspot position (00h - 10h)
  1270.  04h 16 WORDs    cursor bitmap data
  1271.  14h 16 WORDs    screen bitmap data
  1272.  
  1273. Format of Sacrifice Character Map [SMD_SMAP_STRUCT]:
  1274. Offset    Size    Description    (Table 2448)
  1275.  00h    BYTE    bytes are character values (00h-FFh) used in place of the
  1276.  01h    BYTE    actual character for the corresponding position on the screen
  1277.  02h    BYTE         +--------------+      occupied by part or all of the mouse
  1278.  03h    BYTE         | 0h | 1h | 2h |      cursor
  1279.  04h    BYTE         |----+----+----|
  1280.  05h    BYTE         | 3h | 4h | 5h |
  1281.  06h    BYTE         |----+----+----|
  1282.  07h    BYTE         | 6h | 7h | 8h |
  1283.  08h    BYTE         +--------------+
  1284.  
  1285. Format of Program Information [SMD_INFO_STRUCT]:
  1286. Offset    Size    Description    (Table 2449)
  1287.  00h    WORD    segment of old interrupt 33h handler
  1288.  02h    WORD    offset of old interrupt 33h handler
  1289.  04h    WORD    PSP of SMD
  1290.  06h    BYTE    ENABLE/DISABLE manual setting status
  1291.  07h    BYTE    ENABLE/DISABLE internal usage status
  1292. --------M-333004-----------------------------
  1293. INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
  1294.     AX = 3004h
  1295. SeeAlso: AX=3000h
  1296. --------M-333005-----------------------------
  1297. INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
  1298.     AX = 3005h
  1299. SeeAlso: AX=3000h
  1300. --------M-334F00-----------------------------
  1301. INT 33 - LOGITECH MOUSE v6.10+ - GET ???
  1302.     AX = 4F00h
  1303. Return: AX = 004Fh if supported
  1304.     BX = ???
  1305.     ES:DI -> ???
  1306. SeeAlso: AX=4F01h
  1307. --------M-334F01-----------------------------
  1308. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1309.     AX = 4F01h
  1310.     ES = ???
  1311. Return: AX = 004Fh if supported
  1312.     ES:DI -> ???
  1313. SeeAlso: AX=4F00h
  1314. --------M-336F00-----------------------------
  1315. INT 33 - Hewlett Packard - HP MOUSE DRIVER INSTALLATION CHECK
  1316.     AX = 6F00h
  1317.     BX <> 4850h
  1318. Return: BX = 4850h ('HP') if mouse driver written by Hewlett Packard
  1319. SeeAlso: INT 10/AX=6F00h,INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h
  1320. --------M-338800-----------------------------
  1321. INT 33 U - InfoTrack IMOUSE.COM - UNHOOK MOUSE IRQ
  1322.     AX = 8800h
  1323.     BX <> FFFFh
  1324. Note:    the code is written to expect a subfunction number in AL, but only
  1325.       function 00h has been implemented
  1326. SeeAlso: AX=8800h/BX=FFFFh
  1327. --------M-338800BXFFFF-----------------------
  1328. INT 33 U - InfoTrack IMOUSE.COM - GET ACTIVE IRQ
  1329.     AX = 8800h
  1330.     BX = FFFFh
  1331. Return: BL = number of IRQ being used by the mouse
  1332. SeeAlso: AX=8800h
  1333. --------T-33FFE6-----------------------------
  1334. INT 33 - Switch-It v3.23 - GET ??? PROGRAM
  1335.     AX = FFE6h
  1336.     CX = length of buffer
  1337.     ES:DI -> buffer for program name
  1338. Return: ES:DI buffer filled
  1339. Program: Switch-It is a task switcher supporting up to 100 programs
  1340.       simultaneously by Better Software Technology, Inc.
  1341. --------T-33FFE7-----------------------------
  1342. INT 33 - Switch-It v3.23 - GET ???
  1343.     AX = FFE7h
  1344. Return: AX = ???
  1345. --------T-33FFE8-----------------------------
  1346. INT 33 - Switch-It v3.23 - ???
  1347.     AX = FFE8h
  1348.     CX = length of name including terminating NUL
  1349.     DS:SI -> ASCIZ program pathname
  1350. --------T-33FFE9-----------------------------
  1351. INT 33 - Switch-It v3.23 - SET ???
  1352.     AX = FFE9h
  1353.     BX = ???
  1354. --------T-33FFEA-----------------------------
  1355. INT 33 - Switch-It v3.23 - SET ???
  1356.     AX = FFEAh
  1357.     BL = ???
  1358. --------T-33FFEB-----------------------------
  1359. INT 33 - Switch-It v3.23 - SET ??? FLAG
  1360.     AX = FFEBh
  1361. --------T-33FFEC-----------------------------
  1362. INT 33 - Switch-It v3.23 - SET ???
  1363.     AX = FFECh
  1364.     BL = ???
  1365. --------T-33FFED-----------------------------
  1366. INT 33 - Switch-It v3.23 - GET ???
  1367.     AX = FFEDh
  1368. Return: AX = ??? (0001h)
  1369.     BX = ???
  1370. Program: Switch-It is a task switcher supporting up to 100 programs
  1371.       simultaneously by Better Software Technology, Inc.
  1372. --------T-33FFEE-----------------------------
  1373. INT 33 - Switch-It v3.23 - GET ???
  1374.     AX = FFEEh
  1375. Return: AX = ???
  1376. --------T-33FFEF-----------------------------
  1377. INT 33 - Switch-It v3.23 - GET ???
  1378.     AX = FFEFh
  1379. Return: BX:AX -> ???
  1380. --------T-33FFF0-----------------------------
  1381. INT 33 - Switch-It v3.23 - SET ???
  1382.     AX = FFF0h
  1383.     BL = ???
  1384. --------T-33FFF1-----------------------------
  1385. INT 33 - Switch-It v3.23 - GET CONFIGURATION FILE
  1386.     AX = FFF1h
  1387. Return: BX:AX -> ASCIZ pathname of configuration file
  1388. Program: Switch-It is a task switcher supporting up to 100 programs
  1389.       simultaneously by Better Software Technology, Inc.
  1390. --------T-33FFF2-----------------------------
  1391. INT 33 - Switch-It v3.23 - SET ??? FLAG
  1392.     AX = FFF2h
  1393. Return: AL = 01h
  1394. --------T-33FFF3-----------------------------
  1395. INT 33 - Switch-It v3.23 - GET ???
  1396.     AX = FFF3h
  1397. Return: AX = ???
  1398. --------T-33FFF4-----------------------------
  1399. INT 33 - Switch-It v3.23 - SET ???
  1400.     AX = FFF4h
  1401.     BX = ???
  1402.     CX = ???
  1403. --------T-33FFF5-----------------------------
  1404. INT 33 - Switch-It v3.23 - GET ???
  1405.     AX = FFF5h
  1406. Return: AX = ???
  1407. --------T-33FFF6-----------------------------
  1408. INT 33 - Switch-It v3.23 - GET ???
  1409.     AX = FFF6h
  1410. Return: AX = ???
  1411. --------T-33FFF7-----------------------------
  1412. INT 33 - Switch-It v3.23 - GET ???
  1413.     AX = FFF7h
  1414.     BX = index of ???
  1415. Return: AX = ???
  1416. --------T-33FFF8-----------------------------
  1417. INT 33 - Switch-It v3.23 - ???
  1418.     AX = FFF8h
  1419.     BX = ???
  1420.     CX = length of program name, including terminating NUL
  1421.     DS:SI -> ASCIZ program pathname
  1422. Return: ???
  1423. Program: Switch-It is a task switcher supporting up to 100 programs
  1424.       simultaneously by Better Software Technology, Inc.
  1425. --------T-33FFF9-----------------------------
  1426. INT 33 - Switch-It v3.23 - NOP
  1427.     AX = FFF9h
  1428. --------T-33FFFA-----------------------------
  1429. INT 33 - Switch-It v3.23 - SET ???
  1430.     AX = FFFAh
  1431.     BX = index of program
  1432. SeeAlso: AX=FFFBh,AX=FFFCh
  1433. --------T-33FFFB-----------------------------
  1434. INT 33 - Switch-It v3.23 - GET ???
  1435.     AX = FFFBh
  1436.     BX = index of program
  1437. Return: AX = ??? (0000h or 0001h)
  1438. SeeAlso: AX=FFFAh,AX=FFFCh
  1439. --------T-33FFFC-----------------------------
  1440. INT 33 - Switch-It v3.23 - CLEAR ???
  1441.     AX = FFFCh
  1442.     BX = index of program
  1443. SeeAlso: AX=FFFAh,AX=FFFCh
  1444. --------T-33FFFD-----------------------------
  1445. INT 33 - Switch-It v3.23 - GET MEMORY ADDRESSES???
  1446.     AX = FFFDh
  1447. Return: AX = first available segment???
  1448.     BX = paragraph of top of conventional memory
  1449.     DX = PSP segment of SI.EXE
  1450. --------T-33FFFE-----------------------------
  1451. INT 33 - Switch-It v3.23 - INSTALLATION CHECK
  1452.     AX = FFFEh
  1453. Return: BX = ???
  1454.     DX = 5349h ("SI")
  1455. --------T-33FFFF-----------------------------
  1456. INT 33 - Switch-It v3.23 - ???
  1457.     AX = FFFFh
  1458.     BX = ???
  1459. Program: Switch-It is a task switcher supporting up to 100 programs
  1460.       simultaneously by Better Software Technology, Inc.
  1461. --------r-34---------------------------------
  1462. INT 34 - FLOATING POINT EMULATION - OPCODE D8h
  1463. Desc:    this interrupt is used to emulate floating-point instructions with
  1464.       an opcode of D8h
  1465. Note:    the floating-point emulators in Borland and Microsoft languages and
  1466.       Lahey FORTRAN use this interrupt
  1467. SeeAlso: INT 35,INT 3E
  1468. --------r-35---------------------------------
  1469. INT 35 - FLOATING POINT EMULATION - OPCODE D9h
  1470. Desc:    this interrupt is used to emulate floating-point instructions with
  1471.       an opcode of D9h
  1472. Note:    the floating-point emulators in Borland and Microsoft languages and
  1473.       Lahey FORTRAN use this interrupt
  1474. SeeAlso: INT 34,INT 36
  1475. --------r-36---------------------------------
  1476. INT 36 - FLOATING POINT EMULATION - OPCODE DAh
  1477. Desc:    this interrupt is used to emulate floating-point instructions with
  1478.       an opcode of DAh
  1479. Note:    the floating-point emulators in Borland and Microsoft languages and
  1480.       Lahey FORTRAN use this interrupt
  1481. SeeAlso: INT 35,INT 37
  1482. --------r-37---------------------------------
  1483. INT 37 - FLOATING POINT EMULATION - OPCODE DBh
  1484. Desc:    this interrupt is used to emulate floating-point instructions with
  1485.       an opcode of DBh
  1486. Note:    the floating-point emulators in Borland and Microsoft languages and
  1487.       Lahey FORTRAN use this interrupt
  1488. SeeAlso: INT 36,INT 38
  1489. --------r-38---------------------------------
  1490. INT 38 - FLOATING POINT EMULATION - OPCODE DCh
  1491. Desc:    this interrupt is used to emulate floating-point instructions with
  1492.       an opcode of DCh
  1493. Note:    the floating-point emulators in Borland and Microsoft languages and
  1494.       Lahey FORTRAN use this interrupt
  1495. SeeAlso: INT 37,INT 39
  1496. --------O-38---------------------------------
  1497. INT 38 - PC-MOS/386 v3.0 - API
  1498. Note:    this API was been moved to INT D4h sometime between versions 3.0 and
  1499.       5.01; v3.0 supported at least functions 02h,04h,0703h,10h,11h, and
  1500.       12h
  1501. SeeAlso: INT D4/AH=02h,INT D4/AH=04h,INT D4/AH=07h,INT D4/AH=10h,INT D4/AH=11h
  1502. --------r-39---------------------------------
  1503. INT 39 - FLOATING POINT EMULATION - OPCODE DDh
  1504. Desc:    this interrupt is used to emulate floating-point instructions with
  1505.       an opcode of DDh
  1506. Note:    the floating-point emulators in Borland and Microsoft languages and
  1507.       Lahey FORTRAN use this interrupt
  1508. SeeAlso: INT 38,INT 3A
  1509. --------r-3A---------------------------------
  1510. INT 3A - FLOATING POINT EMULATION - OPCODE DEh
  1511. Desc:    this interrupt is used to emulate floating-point instructions with
  1512.       an opcode of DEh
  1513. Note:    the floating-point emulators in Borland and Microsoft languages and
  1514.       Lahey FORTRAN use this interrupt
  1515. SeeAlso: INT 39,INT 3B
  1516. --------r-3B---------------------------------
  1517. INT 3B - FLOATING POINT EMULATION - OPCODE DFh
  1518. Desc:    this interrupt is used to emulate floating-point instructions with
  1519.       an opcode of DFh
  1520. Note:    the floating-point emulators in Borland and Microsoft languages and
  1521.       Lahey FORTRAN use this interrupt
  1522. SeeAlso: INT 3A,INT 3C
  1523. --------r-3C---------------------------------
  1524. INT 3C - FLOATING POINT EMULATION - INSTRUCTIONS WITH SEGMENT OVERRIDE
  1525. Notes:    the floating-point emulators in Borland and Microsoft languages and
  1526.       Lahey FORTRAN use this interrupt
  1527.     the generated code is  CD 3C xy mm ....
  1528.       where xy is a modified ESC instruction and mm is the modR/M byte.
  1529.       The xy byte appears to be encoded as
  1530.         s s 0 1 1 x x x      or    s s 0 0 0 x x x
  1531.       where "ss" specifies the segment override:
  1532.         00 -> DS:
  1533.         01 -> SS:
  1534.         10 -> CS:
  1535.         11 -> ES:
  1536. SeeAlso: INT 3B,INT 3D
  1537. --------r-3D---------------------------------
  1538. INT 3D - FLOATING POINT EMULATION - STANDALONE FWAIT
  1539. Notes:    the floating-point emulators in Borland and Microsoft languages and
  1540.       Lahey FORTRAN use this interrupt
  1541.     this vector is modified but not restored by Direct Access v4.0, and
  1542.       may be left dangling by other programs written with the same version
  1543.       of compiled BASIC
  1544. SeeAlso: INT 3C,INT 3E
  1545. --------r-3E---------------------------------
  1546. INT 3E - FLOATING POINT EMULATION - Borland LANGUAGES "SHORTCUT" CALL
  1547. Notes:    the two bytes following the INT 3E instruction are the subcode
  1548.       (see #2450) and a NOP (90h), except for subcodes DCh and DEh, where
  1549.       the second byte is a register count (01h-08h)
  1550.     this vector is modified but not restored by Direct Access v4.0, and
  1551.       may be left dangling by other programs written with the same version
  1552.       of compiled BASIC
  1553. SeeAlso: INT 3D
  1554.  
  1555. (Table 2450)
  1556. Values for Borland floating-point shortcut subcode:
  1557. Subcode        Function
  1558.  DCh    load 8086 stack with 8087 registers; overwrites the 10*N bytes at the
  1559.       top of the stack prior to the INT 3E with the 8087 register contents
  1560.  DEh    load 8087 registers from top of 8086 stack; ST0 is furthest from top
  1561.       of 8086 stack
  1562.  E0h    round TOS and R1 to single precision, compare, pop twice
  1563.       returns AX=8087 status word, FLAGS=8087 condition bits
  1564.  E2h    round TOS and R1 to double precision, compare, pop twice
  1565.       returns AX=8087 status word, FLAGS=8087 condition bits
  1566.     Note: buggy in TPas5.5, because it sets the 8087 precision control
  1567.       field to the undocumented value 01h; this results in actually
  1568.       rounding to single precision
  1569.  E4h    compare TOS/R1 with two POP's
  1570.       returns FLAGS=8087 condition bits
  1571.  E6h    compare TOS/R1 with POP
  1572.       returns FLAGS=8087 condition bits
  1573.  E8h    FTST (check TOS value)
  1574.       returns FLAGS=8087 condition bits
  1575.  EAh    FXAM (check TOS value)
  1576.       returns AX=8087 status word
  1577.  ECh    sine(ST0)
  1578.  EEh    cosine(ST0)
  1579.  F0h    tangent(ST0)
  1580.  F2h    arctangent(ST0)
  1581.  F4h    ST0 = ln(ST0)
  1582.  F6h    ST0 = log2(ST0)
  1583.  F8h    ST0 = log10(ST0)
  1584.  FAh    ST0 = e**ST0
  1585.  FCh    ST0 = 2**ST0
  1586.  FEh    ST0 = 10**ST0
  1587. --------r-3F---------------------------------
  1588. INT 3F - Overlay manager interrupt (Microsoft LINK.EXE, Borland TLINK VROOMM)
  1589. Notes:    INT 3F is the default, and may be overridden while linking
  1590.     this vector is modified but not restored by Direct Access v4.0, and
  1591.       may be left dangling by other programs written with the same version
  1592.       of compiled BASIC
  1593. SeeAlso: INT FE"OVERLAY"
  1594. --------r-3F---------------------------------
  1595. INT 3F - Microsoft Dynamic Link Library manager
  1596. SeeAlso: INT 21/AH=4Bh
  1597. --------B-40---------------------------------
  1598. INT 40 - DISKETTE - ROM BIOS DISKETTE HANDLER RELOCATED BY HARD DISK BIOS
  1599. SeeAlso: INT 13/AH=00h,INT 13/AH=02h,INT 47"SuperBIOS",INT 63"Adaptec"
  1600. --------h-40---------------------------------
  1601. INT 40 - Z100 - Master 8259 - Parity error or S100 error
  1602. SeeAlso: INT 41"Z100",INT FF"Z100"
  1603. --------O-40---------------------------------
  1604. INT 40 - Acorn BBC Master 512 - "OSFIND" - OPEN FILE
  1605.     AL = operation
  1606.         00h close file
  1607.         40h open file for reading
  1608.         80h open file for writing
  1609.         C0h open file for random access
  1610.     DS:BX -> CR-terminated filename
  1611. Return: AL = file handle (00h if file closed or could not be opened)
  1612. Note:    the Acorn BBC Master 512 is an 80186-based add-on board for the
  1613.       6502-based Master 128 which uses the original CPU as an I/O processor
  1614. SeeAlso: INT 41"Acorn",INT 42"Acorn",INT 43"Acorn",INT 44"Acorn",INT 4C"Acorn"
  1615. --------h-40---------------------------------
  1616. INT 40 - TI Professional PC - IRQ0
  1617. Note:    on the TI Pro, IRQ0 is connected to the same pin on the expansion bus
  1618.       that IBM connects to IRQ2
  1619. SeeAlso: INT 0A"IRQ2",INT 41"TI Professional"
  1620. --------B-41---------------------------------
  1621. INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE
  1622. Notes:    the default parameter table array is located at F000h:E401h in 100%
  1623.       compatible BIOSes; the pointer may be overridden by the hard disk
  1624.       controller's BIOS to support drive formats unknown to the ROM BIOS
  1625.     not used by some PS/2 models
  1626.     BIOSes which support four hard drives may store the parameter tables
  1627.       for drives 81h-83h immediately following the parameter table pointed
  1628.       at by INT 41, with a separate copy of the drive 81h table for INT 46.
  1629.       The check for such an arrangement is to test whether INT 46 points
  1630.       somewhere other than exactly 16 bytes past INT 41, and the sixteen
  1631.       bytes starting at offset 10h from INT 41 are identical to the sixteen
  1632.       bytes pointed at by INT 46
  1633. SeeAlso: #2451,INT 13/AH=09h,INT 1E,INT 46"HARD DISK 1",INT 60"Adaptec"
  1634. SeeAlso: INT C0"AMI"
  1635.  
  1636. Format of fixed disk parameters:
  1637. Offset    Size    Description    (Table 2451)
  1638.  00h    WORD    number of cylinders
  1639.  02h    BYTE    number of heads
  1640.  03h    WORD    starting reduced write current cylinder (XT only, 0 for others)
  1641.  05h    WORD    starting write precompensation cylinder number
  1642.  07h    BYTE    maximum ECC burst length (XT only)
  1643.  08h    BYTE    control byte (see #2452,#2453)
  1644.  09h    BYTE    standard timeout (XT only, 0 for others)
  1645.  0Ah    BYTE    formatting timeout (XT and WD1002 only, 0 for others)
  1646.  0Bh    BYTE    timeout for checking drive (XT and WD1002 only, 0 for others)
  1647.  0Ch    WORD    cylinder number of landing zone (AT and later only)
  1648.  0Eh    BYTE    number of sectors per track (AT and later only)
  1649.  0Fh    BYTE    reserved
  1650. SeeAlso: #0183,#0185
  1651.  
  1652. Bitfields for XT fixed disk control byte:
  1653. Bit(s)    Description    (Table 2452)
  1654.  2-0    drive step speed
  1655.     000  3ms
  1656.     100  200ms
  1657.     101  70ms (default)
  1658.     110  3ms
  1659.     111  3ms
  1660.  5-3    unused
  1661.  6    disable ECC retries
  1662.  7    disable access retries
  1663.  
  1664. Bitfields for AT fixed disk control byte:
  1665. Bit(s)    Description    (Table 2453)
  1666.  0    unused
  1667.  1    reserved (0)  (disable IRQ)
  1668.  2    reserved (0)  (no reset)
  1669.  3    set if more than 8 heads
  1670.  4    always 0
  1671.  5    set if manufacturer's defect map on max cylinder+1  (AT and later only)
  1672.  6    disable ECC retries
  1673.  7    disable access retries
  1674. --------h-41---------------------------------
  1675. INT 41 - Z100 - Master 8259 - Processor Swap
  1676. SeeAlso: INT 40"Z100",INT 42"Z100"
  1677. --------h-41---------------------------------
  1678. INT 41 - TI Professional PC - IRQ1
  1679. Note:    on the TI Pro, IRQ1 is connected to the same pin on the expansion bus
  1680.       that IBM connects to IRQ3
  1681. SeeAlso: INT 0B"IRQ3",INT 40"TI Professional",INT 42"TI Professional"
  1682. --------O-41---------------------------------
  1683. INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT
  1684.     AL = function
  1685.         01h put bytes sequentially
  1686.         02h put bytes, ignoring sequential pointer
  1687.         03h get bytes sequentially
  1688.         04h get bytes, ignoring sequential pointer
  1689.         05h get media title and boot option
  1690.         06h get current device and directory
  1691.         07h get current library and device
  1692.         08h search directory
  1693.     DS:BX -> control block (see #2454)
  1694. Return: CF clear if successful
  1695.     CF set on error
  1696.     AL = 00h if operation attempted
  1697.     AL unchanged if unsupported function
  1698. SeeAlso: INT 40"Acorn",INT 42"Acorn",INT 43"Acorn"
  1699.  
  1700. Format of BBC Master control block:
  1701. Offset    Size    Description    (Table 2454)
  1702.  00h    BYTE    file handle
  1703.  01h    DWORD    pointer to data in either I/O processor or Tube processor
  1704.  05h    DWORD    number of bytes to be transferred
  1705.  09h    DWORD    transfer address
  1706. --------G-410000-----------------------------
  1707. INT 41 CPU - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
  1708.     AX = 0000h
  1709.     DS:DX -> character
  1710. Note:    the kernel calls this function when it wants the user program to
  1711.       output a character
  1712. SeeAlso: AX=0001h
  1713. --------G-410001-----------------------------
  1714. INT 41 CPU - MS Windows debugging kernel - INPUT CHARACTER
  1715.     AX = 0001h
  1716. Return: AL = character
  1717. Note:    the kernel calls this function when it needs to input a character
  1718. SeeAlso: AX=0000h
  1719. --------G-41000D-----------------------------
  1720. INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT
  1721.     AX = 000Dh
  1722. SeeAlso: AX=000Eh
  1723. --------G-41000E-----------------------------
  1724. INT 41 CPU - MS Windows debugging kernel - TASK COMING IN
  1725.     AX = 000Eh
  1726. SeeAlso: AX=000Dh
  1727. --------G-410012-----------------------------
  1728. INT 41 CPU - MS Windows debugging kernel - "OutputDebugString"
  1729.     AX = 0012h
  1730.     DS:SI -> string (Windows 3.0)
  1731.     ES:SI -> string (Windows 3.1)
  1732. Return: nothing???
  1733. Note:    this function is called by the kernel when it wants to output a
  1734.       string through the debugger
  1735. SeeAlso: AX=0050h,INT 68/AH=47h
  1736. --------G-41004F-----------------------------
  1737. INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
  1738.     AX = 004Fh
  1739. Return: AX = F386h if debugger is present
  1740. SeeAlso: INT 68/AX=4400h
  1741. --------G-410050-----------------------------
  1742. INT 41 P - MS Windows debugging kernel - "DefineDebugSegment"
  1743.     AX = 0050h
  1744.     BX = segment number in executable (0-based)
  1745.     CX = selector
  1746.     DX = instance handle
  1747.     SI = segment flags (0=code, 1=data)
  1748.     ES:DI -> module name of owner
  1749. Return: ???
  1750. SeeAlso: AX=0012h,AX=004Fh
  1751. --------G-410051-----------------------------
  1752. INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT
  1753.     AX = 0051h
  1754.     ???
  1755. Return: ???
  1756. SeeAlso: AX=0050h,AX=0052h
  1757. --------G-410052-----------------------------
  1758. INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT
  1759.     AX = 0052h
  1760.     BX = freed selector
  1761. SeeAlso: AX=0050h,AX=0051h,AX=005Ch
  1762. --------G-410059-----------------------------
  1763. INT 41 CPU - MS Windows debugging kernel - LOAD TASK
  1764.     AX = 0059h
  1765.     ???:BX = CS:IP of new task's starting point
  1766. --------G-41005C-----------------------------
  1767. INT 41 CPU - MS Windows debugging kernel - FREE INITIAL SEGMENT
  1768.     AX = 005Ch
  1769.     BX = freed selector
  1770. Note:    called only when KERNEL starts, once for CS and once for the DS alias
  1771.       to CS
  1772. SeeAlso: AX=0052h
  1773. --------G-410060-----------------------------
  1774. INT 41 CPU - MS Windows debugging kernel -  END OF SEGMENT LOAD
  1775.     AX = 0060h
  1776.     ???
  1777. Return: ???
  1778. SeeAlso: AX=0061h
  1779. --------G-410061-----------------------------
  1780. INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD
  1781.     AX = 0061h
  1782.     ???
  1783. Return: ???
  1784. SeeAlso: AX=0060h
  1785. --------G-410062-----------------------------
  1786. INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING
  1787.     AX = 0062h
  1788. STACK:    BYTE    exit code
  1789. Return: ???
  1790.     STACK unchanged???
  1791. SeeAlso: AX=0064h
  1792. --------G-410063-----------------------------
  1793. INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
  1794.     AX = 0063h
  1795. --------G-410064-----------------------------
  1796. INT 41 CPU - MS Windows debugging kernel - DLL LOADED
  1797.     AX = 0064h
  1798.     CX:BX = DLL entry point CS:IP
  1799.     SI = module handle
  1800. SeeAlso: AX=0062h,AX=0065h
  1801. --------G-410065-----------------------------
  1802. INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED
  1803.     AX = 0065h
  1804.     ES = module handle
  1805. SeeAlso: AX=0064h
  1806. --------V-42---------------------------------
  1807. INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA)
  1808. Desc:    contains the address of the original INT 10 handler which an EGA+
  1809.       video adapter replaces with its own on-board BIOS code
  1810. SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 6D"VGA"
  1811. Note:    not used by PS/2 built-in VGA or XGA
  1812. --------h-42---------------------------------
  1813. INT 42 - Z100 - Master 8259 - Timer
  1814. SeeAlso: INT 41"Z100",INT 43"Z100"
  1815. --------h-42---------------------------------
  1816. INT 42 - TI Professional PC - IRQ2
  1817. Note:    on the TI Pro, IRQ0 is connected to the same pin on the expansion bus
  1818.       that IBM connects to IRQ4
  1819. SeeAlso: INT 0C"IRQ4",INT 41"TI Professional",INT 43"TI Professional"
  1820. --------b-42---------------------------------
  1821. INT 42 - Western Digital WD1002 SuperBIOS - INT 40 CASCADE
  1822. Note:    if the second WD1002 controller in the system finds INT 40 already in
  1823.       use, it uses this vector to cascade to the first controller's BIOS
  1824. SeeAlso: INT 40"DISKETTE",INT 47"SuperBIOS"
  1825. --------O-42---------------------------------
  1826. INT 42 - Acorn BBC Master 512 - "OSBPUT" - WRITE SINGLE BYTE TO FILE
  1827.     AL = byte to be written
  1828.     BH = file handle
  1829. Return: flags destroyed
  1830. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 43"Acorn",INT 47"Acorn",INT 49"Acorn"
  1831. --------V-427500-----------------------------
  1832. INT 42 U - Toshiba laptops - ???
  1833.     AX = 7500h
  1834.     BL = ??? (00h or 01h)
  1835. Return: ???
  1836. Note:    used by Toshiba utility VCHAD.EXE
  1837. SeeAlso: AX=7501h,AX=7503h
  1838. --------V-427501-----------------------------
  1839. INT 42 U - Toshiba laptop - GET ??? DATA
  1840.     AX = 7501h
  1841.     DS:DI -> data area to be filled ???
  1842. Return: area filled with data ???
  1843. Note:    used by Toshiba utility VCHAD.EXE
  1844. SeeAlso: AX=7500h,AX=7502h,AX=7503h
  1845. --------V-427502-----------------------------
  1846. INT 42 U - Toshiba laptops - SET ??? DATA
  1847.     AX = 7502h
  1848.     DS:DI -> data area ???
  1849. Return: ???
  1850. Note:    used by Toshiba utility VCHAD.EXE
  1851. SeeAlso: AX=7501h,AX=7503h
  1852. --------V-427503-----------------------------
  1853. INT 42 - Toshiba laptops - GET DISPLAY STATUS
  1854.     AX = 7503h
  1855. Return: AX = 7575h if supported
  1856.     CX = 0001h if supported
  1857.     BH = display type (00h color, 03h monochrome)
  1858.     BL = display state
  1859.         01h internal LCD display is active
  1860.         02h external VGA display is active
  1861.         03h both displays active / DeskStation display mode enabled
  1862.         (not possible on all machines)
  1863. Note:    used by VCHAD.EXE and supported by all Toshiba VGA laptops until about
  1864.       1994 (string "TOSHIBA " at F000:E010h should be checked before call)
  1865.     no longer supported by T21xx series, use INT 10/AX=5F50h instead
  1866.     INT 42 normally points to F000:F065h but may be redirected by QEMM386
  1867. SeeAlso: AX=7500h,AX=7504h,INT 10/AX=5F50h,INT 15/AH=C0h
  1868. --------V-427504-----------------------------
  1869. INT 42 U - Toshiba laptops - ???
  1870.     AX = 7504h
  1871.     BL = ???
  1872. Return: BH = ???
  1873. Note:    used by Toshiba utility VCHAD.EXE
  1874. SeeAlso: AX=7500h,AX=7503h
  1875. --------V-43---------------------------------
  1876. INT 43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA)
  1877. Desc:    points at graphics data for characters 00h-7Fh of the current font
  1878.       in 8x8 dot modes, graphics data for all characters in 8x14 and 8x16
  1879.       modes
  1880. Note:    this is not a callable vector!
  1881. SeeAlso: INT 06"no-name",INT 1F"SYSTEM DATA",INT 44"VIDEO"
  1882. --------h-43---------------------------------
  1883. INT 43 - Z100 - Master 8259 - Slave 8259 input
  1884. Note:    slave runs in special fully nested mode
  1885. SeeAlso: INT 42"Z100",INT 44"Z100"
  1886. --------h-43---------------------------------
  1887. INT 43 - TI Professional PC - IRQ3 - TIMER1 25ms INTERVAL INTERRUPT
  1888. SeeAlso: INT 0B"IRQ3",INT 42"TI Professional",INT 44"TI Professional"
  1889. SeeAlso: INT 58"TI Professional"
  1890. --------O-43---------------------------------
  1891. INT 43 - Acorn BBC Master 512 - "OSBGET" - READ SINGLE BYTE FROM FILE
  1892.     BH = file handle
  1893. Return: CF clear if successful
  1894.         AL = byte read from file
  1895.     CF set on error
  1896. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 42"Acorn",INT 46"Acorn"
  1897. --------V-44---------------------------------
  1898. INT 44 - VIDEO DATA - ROM BIOS CHARACTER FONT, CHARACTERS 00h-7Fh (PCjr)
  1899. Desc:    this vector points at graphics data for current character font
  1900. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO"
  1901. --------N-44---------------------------------
  1902. INT 44 - Novell NetWare - HIGH-LEVEL LANGUAGE API
  1903. --------I-44---------------------------------
  1904. INT 44 - IBM 3270-PC High Level Language API
  1905.     DS:SI -> parameter control block
  1906. --------h-44---------------------------------
  1907. INT 44 - Z100 - Master 8259 - Serial A
  1908. SeeAlso: INT 43"Z100",INT 45"Z100"
  1909. --------h-44---------------------------------
  1910. INT 44 - TI Professional PC - IRQ4
  1911. Note:    on the TI Pro, IRQ4 is connected to the same pin on the expansion bus
  1912.       that IBM connects to IRQ5
  1913. SeeAlso: INT 0D"IRQ5",INT 43"TI Professional",INT 45"TI Professional"
  1914. --------v-44---------------------------------
  1915. INT 44 - VIRUS - "Lehigh" - ORIGINAL INT 21h VECTOR
  1916. SeeAlso: INT 32"VIRUS",INT 60"VIRUS",INT 70"VIRUS",INT 9E"VIRUS"
  1917. --------O-4400-------------------------------
  1918. INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE
  1919.     AH = 00h
  1920.     AL = function
  1921.         00h get current filing system
  1922.         Return: AL = filing system (see #2455)
  1923.         01h get address of commandline tail
  1924.         Return: BX buffer filled with address of command tail in I/O
  1925.                   processor address space (use INT 4A/AL=05h to
  1926.                   retrieve)
  1927.         FFh flush all files onto secondary storage
  1928.     BX -> 4-byte data buffer
  1929. Note:    the commandline tail is terminated with a carriage return (0Dh)
  1930. SeeAlso: INT 40"Acorn",INT 45"Acorn"
  1931.  
  1932. (Table 2455)
  1933. Values for BBC Master filing system:
  1934.  00h    none
  1935.  01h    1200 bps cassette
  1936.  02h    300 bps cassette
  1937.  03h    ROM FS
  1938.  04h    DFS
  1939.  05h    ANFS/NFS
  1940.  06h    TFS
  1941.  08h    ADFS
  1942. --------O-44---------------------------------
  1943. INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE
  1944.     AH = nonzero file handle
  1945.     AL = function
  1946.         00h get sequential pointer for file
  1947.         01h set sequential pointer for file
  1948.         02h get length of file
  1949.     BX -> 4-byte data buffer
  1950. Return: BX buffer updated if appropriate
  1951. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 44/AH=00h,INT 45"Acorn",INT 4A"Acorn"
  1952. --------h-45---------------------------------
  1953. INT 45 - Z100 - Master 8259 - Serial B
  1954. SeeAlso: INT 44"Z100",INT 46"Z100"
  1955. --------h-45---------------------------------
  1956. INT 45 - TI Professional PC - IRQ5
  1957. Note:    on the TI Pro, IRQ5 is connected to the same pin on the expansion bus
  1958.       that IBM connects to IRQ6
  1959. SeeAlso: INT 0E"IRQ6",INT 44"TI Professional",INT 46"TI Professional"
  1960. --------O-45---------------------------------
  1961. INT 45 - Acorn BBC Master 512 - "OSFILE" - READ/WRITE FILE OR DIRECTORY INFO
  1962.     AL = function
  1963.         00h save block of memory as file
  1964.         01h update directory entry for existing file
  1965.         02h set load address for existing file
  1966.         03h set execution address for existing file
  1967.         04h set attributes for existing file
  1968.         05h read directory
  1969.         06h delete file
  1970.         FFh load file
  1971.     DS:BX -> control block (see #2456)
  1972. Return: FLAGS destroyed
  1973.     AL = file type
  1974.         00h not found
  1975.         01h file found
  1976.         02h directory found
  1977.         FFh protected file
  1978. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 44"Acorn",INT 46"Acorn"
  1979.  
  1980. Format of BBC Master control block:
  1981. Offset    Size    Description    (Table 2456)
  1982.  00h    WORD    address of CR-terminated filename
  1983.  02h    DWORD    load address of file
  1984.  06h    DWORD    execution address of file
  1985.  0Ah    DWORD    start address of data to save
  1986.  0Eh    DWORD    end address of data to save, or file attributes
  1987.         file attributes in low byte (see #2457)
  1988.         other three bytes are filing-system specific file attributes
  1989.  
  1990. Bitfields for BBC Master file attributes:
  1991. Bit(s)    Description    (Table 2457)
  1992.  0    no owner read access
  1993.  1    no owner write access
  1994.  2    not executable by owner
  1995.  3    not deletable by owner
  1996.  4    no public read access
  1997.  5    no public write access
  1998.  6    not executable with public access
  1999.  7    not deletable with public access
  2000. --------B-46---------------------------------
  2001. INT 46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE
  2002. Note:    not used by some PS/2 models
  2003. SeeAlso: INT 13/AH=09h,INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI"
  2004. --------h-46---------------------------------
  2005. INT 46 - Z100 - Master 8259 - Keyboard, Retrace, and Light Pen
  2006. SeeAlso: INT 45"Z100",INT 47"Z100"
  2007. --------h-46---------------------------------
  2008. INT 46 - TI Professional PC - IRQ6 - FLOPPY DISK CONTROLLER
  2009. Note:    on the TI Pro, IRQ6 is connected to the same pin on the expansion bus
  2010.       that IBM connects to IRQ7
  2011. SeeAlso: INT 0F"IRQ7",INT 45"TI Professional",INT 47"TI Professional"
  2012. --------O-46---------------------------------
  2013. INT 46 - Acorn BBC Master 512 - "OSRDCH" - GET CHARACTER FROM CUR INPUT STREAM
  2014. Return: CF clear if successful
  2015.         AL = character read
  2016.     CF set on error
  2017.         AL = error code
  2018. SeeAlso: INT 40"Acorn",INT 43"Acorn",INT 47"Acorn",INT 49"Acorn"
  2019. --------h-47---------------------------------
  2020. INT 47 - Z100 - Master 8259 - Printer
  2021. SeeAlso: INT 46"Z100",INT 48"Z100"
  2022. --------h-47---------------------------------
  2023. INT 47 - TI Professional PC - IRQ7 - KEYBOARD USART
  2024. SeeAlso: INT 09"IRQ1",INT 46"TI Professional"
  2025. --------O-47---------------------------------
  2026. INT 47 - Acorn BBC Master 512 - "OSWRCH" - WRITE CHARACTER TO CUR OUTPUT STREAM
  2027.     AL = character to be written
  2028. Return: FLAGS destroyed
  2029. SeeAlso: INT 40"Acorn",INT 46"Acorn",INT 49"Acorn"
  2030. --------b-47---------------------------------
  2031. INT 47 - Western Digital WD1002-27X SuperBIOS - INT 40 CASCADE
  2032. Desc:    used by the second WD1002-27X controller to cascade to the first
  2033.       controller's INT 40
  2034. SeeAlso: INT 40"DISKETTE",INT 42"SuperBIOS",INT 48"SuperBIOS"
  2035. ----------478000-----------------------------
  2036. INT 47 - SQL Base - DATABASE ENGINE API
  2037.     AX = 8000h
  2038.     DS:BX -> parameter block, first word is function number (see #2458)
  2039. Program: SQL Base is a network-oriented database engine by Gupta Technologies
  2040. SeeAlso: AX=8001h
  2041.  
  2042. (Table 2458)
  2043. Values for SQL Base function number:
  2044.  01h    "SQLFINI" initalialize application's use of the database
  2045.  02h    "SQLFDON" application is done using the database
  2046.  03h    "SQLFCON" connect to a cursor/database
  2047.  04h    "SQLFDIS" disconnect from a cursor/database
  2048.  05h    "SQLFCOM" compile a SQL command
  2049.  06h    "SQLFEXE" execute a SQL command
  2050.  07h    "SQLFCEX" compile and execute a SQL command
  2051.  08h    "SQLFCMT" commit a transaction to the database
  2052.  09h    "SQLFDES" describe the items of a SELECT statement
  2053.  0Ah    "SQLFGFI" get fetch information
  2054.  0Bh    "SQLFFBK" fetch previous result row from SELECT statement
  2055.  0Ch    "SQLFFET" fetch next result row from SELECT statement
  2056.  0Dh    "SQLFEFB" enable fetch backwards
  2057.  0Eh    "SQLFPRS" position in result set
  2058.  0Fh    "SQLFURS" undo result set
  2059.  10h    "SQLFNBV" get number of bind variables
  2060.  11h    "SQLFBND" bind data variables
  2061.  12h    "SQLFBNN" bind numerics
  2062.  13h    "SQLFBLN" bind long number
  2063.  14h    "SQLFBLD" bind long data variables
  2064.  15h    "SQLFSRS" start restriction set processing
  2065.  16h    "SQLFRRS" restart restriction set processing
  2066.  17h    "SQLFCRS" close restriction set
  2067.  18h    "SQLFDRS" drop restriction set
  2068.  19h    "SQLFARF" apply Roll Forward journal
  2069.  1Ah    "SQLFERF" end Roll Forward journal
  2070.  1Bh    "SQLFSRF" start Roll Forward journal
  2071.  1Ch    "SQLFSTO" store a compiled SQL command
  2072.  1Dh    "SQLFRET" retrieve a compiled SQL command
  2073.  1Eh    "SQLFDST" drop a stored command
  2074.  1Fh    "SQLFCTY" get command type
  2075.  20h    "SQLFEPO" get error position
  2076.  21h    "SQLFGNR" get number of rows
  2077.  22h    "SQLFNSI" get number of select items
  2078.  23h    "SQLFRBF" get Roll Back flag
  2079.  24h    "SQLFRCD" get return code
  2080.  25h    "SQLFROW" get number of ROWs
  2081.  26h    "SQLFSCN" set cursor name
  2082.  27h    "SQLFSIL" set isolation level
  2083.  28h    "SQLFSLP" set log parameters
  2084.  29h    "SQLFSSB" set select buffer
  2085.  2Ah    "SQLFSSS" set sort space
  2086.  2Bh    "SQLFRLO" read long
  2087.  2Ch    "SQLFWLO" write long
  2088.  2Dh    "SQLFLSK" long seek
  2089.  2Eh    "SQLFGLS" get long size
  2090.  2Fh    "SQLFELO" end long operation
  2091.  30h    "SQLFRBK" roll back a transaction from the database
  2092.  31h    "SQLFERR" error message
  2093.  32h    "SQLFCPY" copy
  2094.  33h    "SQLFR01" reserved
  2095.  34h    "SQLFSYS" system
  2096.  35h    "SQLFSTA" statistics
  2097.  36h    "SQLFR02" reserved
  2098.  37h    "SQLFXAD" extra add
  2099.  38h    "SQLFXCN" extra character to number
  2100.  39h    "SQLFXDA" extra date add
  2101.  3Ah    "SQLFXDP" extra date picture
  2102.  3Bh    "SQLFXDV" extra divide
  2103.  3Ch    "SQLFXML" extra multiply
  2104.  3Dh    "SQLFXNP" extra number picture
  2105.  3Eh    "SQLFXPD" extra picture date
  2106.  3Fh    "SQLFXSB" extra subtract
  2107.  40h    "SQLFINS" install database
  2108.  41h    "SQLFDIN" deinstall database
  2109.  42h    "SQLFDIR" directory of databases
  2110.  43h    "SQLFTIO" timeout
  2111.  44h    "SQLFFQN" get fully qualified column name
  2112.  45h    "SQLFEXP" explain execution plan
  2113.  46h    "SQLFFER" get full error
  2114.  47h    "SQLFBKP" begin online backup
  2115.  48h    "SQLFRDC" read backup data chunk
  2116.  49h    "SQLFEBK" end backup
  2117.  4Ah    "SQLFRES" begin restore from backup
  2118.  4Bh    "SQLFWDC" write backup data chunk for restore
  2119.  4Ch    "SQLFRRD" recover restored database to consistent state
  2120.  4Dh    "SQLFERS" end restore
  2121.  4Eh    "SQLFNRR" return number of result set rows
  2122.  4Fh    "SQLFSTR" start restriction mode
  2123.  50h    "SQLFSPR" stop restriction mode
  2124.  51h    "SQLFCNC" connect 2
  2125.  52h    "SQLFCNR" connect with no recovery
  2126.  53h    "SQLFOMS" set output message size
  2127.  54h    "SQLFIMS" set input message size
  2128.  55h    "SQLFSCP" set cache pages
  2129.  56h    "SQLFDSC" describe items of a SELECT statement (external)
  2130.  57h    "SQLFLAB" get label info for items in SELECT statement
  2131.  58h    "SQLFCBV" clear bind variables
  2132.  59h    "SQLFGET" get database information
  2133.  5Ah    "SQLFSET" set database information
  2134.  5Bh    "SQLFTEC" translate error code
  2135. ----------478001-----------------------------
  2136. INT 47 - SQL Base - GET VERSION NUMBER
  2137.     AX = 8001h
  2138. Return: ???
  2139. Program: SQL Base is a network-oriented database engine by Gupta Technologies
  2140. SeeAlso: AX=8000h
  2141. --------B-48---------------------------------
  2142. INT 48 - KEYBOARD - CORDLESS KEYBOARD TRANSLATION (PCjr)
  2143. SeeAlso: INT 49"PCjr"
  2144. --------h-48---------------------------------
  2145. INT 48 - Z100 - Slave 8259 - S100 vectored line 0
  2146. SeeAlso: INT 47"Z100",INT 49"Z100"
  2147. --------N-48---------------------------------
  2148. INT 48 - Watstar PC Network data pointer 1
  2149. SeeAlso: INT 49"Watstar"
  2150. --------O-48---------------------------------
  2151. INT 48 - Acorn BBC Master 512 - "OSNEWL" - SEND NEWLINE TO OUTPUT STREAM
  2152. Return: FLAGS destroyed
  2153. Note:    writes a carriage return (0Dh) followed by a linefeed (0Ah)
  2154. SeeAlso: INT 40"Acorn",INT 47"Acorn",INT 49"Acorn"
  2155. --------b-48---------------------------------
  2156. INT 48 - Western Digital WD1002-27X SuperBIOS - DRIVE DATA (NOT A VECTOR!)
  2157. Note:    the second WD1002-27X controller in a system uses the low byte to
  2158.       store the number of drives controlled by the second controller,
  2159.       and the high word for temporary storage during track recalculation;
  2160.       the first controller uses offsets 74h-77h in the BIOS data area
  2161.       (refer to MEMORY.LST) to store data
  2162. SeeAlso: INT 47"SuperBIOS"
  2163. --------V-48---------------------------------
  2164. INT 48 U - Compaq UILIB.EXE - API
  2165.     AX = function (see #2459)
  2166.     BX = call type (0002h) (see #2462)
  2167.     ???
  2168. Return: ???
  2169. Note:    returns AX=FFFFh if 1000h<=AX<=2000h and AX is not one of the functions
  2170.       listed below
  2171. SeeAlso: AX=1A70h
  2172.  
  2173. (Table 2459)
  2174. Values for valid UILIB function number:
  2175.  1000h    1160h    12D0h    1430h    1570h    1680h    17F0h    1920h    1A90h
  2176.  1010h    1170h    12E0h    1440h    1578h    1690h    1800h    1930h    1AA0h
  2177.  1020h    1180h    12F0h    1450h    1580h    16A0h    1810h    1940h
  2178.  1030h    1190h    1300h    1460h    1590h    16B0h    1820h    1950h
  2179.  1040h    11A0h    1310h    1470h    1594h    16C0h    1830h    1960h
  2180.  1050h    11B0h    1320h    1480h    1598h    16D0h    1840h    1970h
  2181.  1060h    11C0h    1330h    1490h    15A0h    16E0h    1848h    1980h
  2182.  1070h    11D0h    1340h    14A0h    15B0h    16F0h    1850h    1990h
  2183.  1080h    11E0h    1350h    14B0h    15C0h    1700h    1860h    19A0h
  2184.  1090h    11F0h    1360h    14B8h    15D0h    1710h    1870h    19B0h
  2185.  1095h    1200h    1370h    14BBh    15D4h    1720h    1878h    19C0h
  2186.  1098h    1210h    1380h    14C0h    15D8h    1730h    1880h    19D0h
  2187.  10A0h    1220h    1390h    14D0h    15E0h    1735h    1890h    19E0h
  2188.  10C0h    1230h    13A0h    14E0h    15F0h    1740h    1898h    19F0h
  2189.  10D0h    1240h    13B0h    14F0h    1600h    1750h    18A0h    1A00h
  2190.  10E0h    1250h    13B8h    1500h    1610h    1770h    18B0h    1A10h
  2191.  10F0h    1260h    13C0h    1508h    1620h    1780h    18C0h    1A20h
  2192.  1100h    1270h    13D0h    1510h    1630h    1790h    18D0h    1A30h
  2193.  1110h    1280h    13E0h    1520h    1640h    17A0h    18E0h    1A40h
  2194.  1120h    1290h    13F0h    1530h    1650h    17B0h    18F0h    1A50h
  2195.  1130h    12A0h    1400h    1540h    1660h    17C0h    1900h    1A60h
  2196.  1140h    12B0h    1410h    1550h    1664h    17D0h    1909h    1A70h
  2197.  1150h    12C0h    1420h    1560h    1670h    17E0h    1910h    1A80h
  2198. --------b-4800-------------------------------
  2199. INT 48 - TI Professional PC - SPEAKER DEVICE - SOUND SPEAKER
  2200.     AH = 00h
  2201.     AL = number of 25ms ticks sound should last
  2202. Return: nothing
  2203. Desc:    sound the speaker at the current frequency setting (see AH=02h) for
  2204.       the indicated duration
  2205. Notes:    this function returns immediately; the sound is terminated by the
  2206.       timer interrupt handler
  2207.     if a new sound is requested while one is already in progress, the
  2208.       previous sound is terminated immediately and the new sound takes
  2209.       its place
  2210. SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2211. SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI"
  2212. SeeAlso: INT 4A/AH=00h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  2213. --------b-4801-------------------------------
  2214. INT 48 - TI Professional PC - SPEAKER DEVICE - CHECK SPEAKER STATUS
  2215.     AH = 01h
  2216. Return: ZF clear if speaker is currently on
  2217.     ZF set if speaker is currently off
  2218. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2219. --------b-4802-------------------------------
  2220. INT 48 - TI Professional PC - SPEAKER DEVICE - SET SPEAKER FREQUENCY
  2221.     AH = 02h
  2222.     CX = frequency divisor (freq = 1250000 / CX)
  2223. Return: nothing
  2224. SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2225. --------b-4803-------------------------------
  2226. INT 48 - TI Professional PC - SPEAKER DEVICE - TURN ON SPEAKER
  2227.     AH = 03h
  2228. Return: nothing
  2229. Desc:    turn on the speaker at the current frequency, leaving it on until
  2230.       explicitly turned off with AH=04h or the end of a subsequent
  2231.       AH=00h
  2232. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2233. --------b-4804-------------------------------
  2234. INT 48 - TI Professional PC - SPEAKER DEVICE - TURN OFF SPEAKER
  2235.     AH = 04h
  2236. Return: nothing
  2237. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2238. --------b-4805-------------------------------
  2239. INT 48 - TI Professional PC - SPEAKER DEVICE - DELAY
  2240.     AH = 05h
  2241.     CX = desired delay in milliseconds
  2242. Return: after delay expires
  2243. Note:    the delay is only approximate, and may be longer than requested
  2244. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2245. --------b-4806-------------------------------
  2246. INT 48 - TI Professional PC - CALCULATE CRC
  2247.     AH = 06h
  2248.     ES:BX -> memory block for which to calculate CRC
  2249.     BP = size of block in bytes
  2250. Return: DX = CRC for block
  2251.     ZF set if DX = 0000h
  2252. Note:    if the CRC of a memory block is appended to the block, then the CRC
  2253.       of the block plus CRC should equal 0000h
  2254. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2255. --------b-4807-------------------------------
  2256. INT 48 - TI Professional PC - PRINT ROM MESSAGE
  2257.     AH = 07h
  2258.     SI = offset of ASCIZ message string within segment F400h
  2259. Return: nothing
  2260. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2261. --------b-4808-------------------------------
  2262. INT 48 - TI Professional PC - DISPLAY SYSTEM ERROR MESSAGE
  2263.     AH = 08h
  2264.     BX = error number
  2265. Return: nothing
  2266. Desc:    displays the error message " ** System Error ** - xxxx" where xxxx is
  2267.       the hexadecimal value in BX
  2268. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2269. --------b-4809-------------------------------
  2270. INT 48 - TI Professional PC - GET SYSTEM CONFIGURATION DATA
  2271.     AH = 09h
  2272. Return: ES:BX -> system configuration word (see #2482)
  2273. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2274. --------b-480A-------------------------------
  2275. INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFO ADDRESS
  2276.     AH = 0Ah
  2277. Return: ES:BX -> configuration information (see #2460)
  2278. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Bh
  2279.  
  2280. Format of TI Professional PC extra system configuration information:
  2281. Offset    Size    Description    (Table 2460)
  2282.  -3    WORD    memory size in paragraphs
  2283.  00h    BYTE    drive type byte (see #2461)
  2284.  01h    WORD    extra system configuration word 1
  2285.         bit 0: 8087 is present
  2286.         bits 15-1: reserved (0)
  2287.  03h    WORD    extra system configuration word 2
  2288.         bits 15-0: reserved (0)
  2289.  
  2290. Bitfields for TI Professional PC drive type byte:
  2291. Bit(s)    Description    (Table 2461)
  2292.  0    drive A is double-sided
  2293.  1    drive A has 80 tracks instead of 40
  2294.  2    drive B is double-sided
  2295.  3    drive B has 80 tracks instead of 40
  2296.  4    drive C is double-sided
  2297.  5    drive C has 80 tracks instead of 40
  2298.  6    drive D is double-sided
  2299.  7    drive D has 80 tracks instead of 40
  2300. Note:    the type for drive A is determined by motherboard switches; the
  2301.       remaining drives' types are set from a table in IO.SYS
  2302. SeeAlso: #2460
  2303. --------b-480B-------------------------------
  2304. INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFORMATION
  2305.     AH = 0Bh
  2306. Return: AL = drive type byte (see #2461)
  2307.     BX = extra system configuration word 1 (see #2460)
  2308.     CX = extra system configuration word 2 (see #2460)
  2309.     AH destroyed
  2310. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah
  2311. --------V-481A70-----------------------------
  2312. INT 48 U - Compaq UILIB.EXE - INSTALLATION CHECK
  2313.     AX = 1A70h
  2314.     BX = call type (see #2462)
  2315. Return: CX = 5649h ('VI') if installed
  2316.     DX = 4557h ('EW') if installed
  2317.         AX = version??? (0106h)
  2318.  
  2319. (Table 2462)
  2320. Values for UILIB call type:
  2321.  0000h    near
  2322.  0001h    far
  2323.  0002h    INT (only valid call type when using INT 48)
  2324.  0003h    near
  2325. --------B-49---------------------------------
  2326. INT 49 - SYSTEM DATA - NON-KEYBOARD SCAN-CODE TRANSLATION TABLE (PCjr)
  2327. SeeAlso: #2463,INT 48"PCjr"
  2328.  
  2329. Format of PCjr scan-code translation table:
  2330. Offset    Size    Description    (Table 2463)
  2331.  00h    BYTE    number of non-keyboard scancodes in the table
  2332.  01h  N WORDs    high byte 00h (NUL) byte scancode with low order byte
  2333.           representing the scancode mapped values relative to their
  2334.           input values within the range of 56h through 7Eh
  2335. --------h-49---------------------------------
  2336. INT 49 - Z100 - Slave 8259 - S100 vectored line 1
  2337. SeeAlso: INT 48"Z100",INT 4A"Z100"
  2338. --------N-49---------------------------------
  2339. INT 49 - Watstar PC Network data pointer 2
  2340. SeeAlso: INT 48"Watstar"
  2341. --------O-49---------------------------------
  2342. INT 49 - Acorn BBC Master 512 - "OSASCI" - WRITE CHARACTER TO CUR OUTPUT STREAM
  2343.     AL = character to be written
  2344. Return: FLAGS destroyed
  2345. Note:    converts carriage return (0Dh) into CRLF sequence (0Dh 0Ah)
  2346. SeeAlso: INT 40"Acorn",INT 46"Acorn",INT 47"Acorn",INT 48"Acorn"
  2347. --------b-49---------------------------------
  2348. INT 49 - Tandy 2000 - BOOTSTRAP LOADER
  2349. Note:    this interrupt is identical to INT 19
  2350. SeeAlso: INT 19,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 51"Tandy 2000"
  2351. --------a-490001-----------------------------
  2352. INT 49 - MAGic v1.16+ - TURN ON MAGNIFICATION
  2353.     AX = 0001h
  2354. Return: AX = status (see #2464)
  2355.     BX,CX,DX destroyed
  2356. Program: MAGic (MAGnification In Color) is a TSR by Microsystems Software, Inc.
  2357.       providing 2x2 text and graphics magnification on VGA, XGA, and SVGA
  2358. Note:    INT 49 is the default, but may be overridden on the commandline.  The
  2359.       actual interrupt in use may be found by searching for the signature
  2360.       "MAGic" or "xMAGic" (for the deluxe version) immediately preceding
  2361.       the interrupt handler (this is also the installation check).    MAGic
  2362.       uses CodeRunneR, which places the signature "RT" at offset 0000h in
  2363.       the interrupt handler's segment, followed by MAGic's TSR ID of
  2364.       "VMAG".
  2365. SeeAlso: AX=0002h,AX=0003h,AX=0004h,AX=0008h
  2366. Index:    installation check;MAGic
  2367.  
  2368. (Table 2464)
  2369. Values for MAGic status:
  2370.  0000h    cannot magnify current video mode
  2371.  0002h    magnified (text mode)
  2372.  0003h    magnified (graphics mode)
  2373.  FFFDh    function works only in magnified mode
  2374.  FFFFh    MAGic busy, retry later
  2375. --------a-490002-----------------------------
  2376. INT 49 - MAGic v1.16+ - TURN OFF MAGNIFICATION
  2377.     AX = 0002h
  2378. Return: AX = status (see #2464)
  2379.     BX,CX,DX destroyed
  2380. SeeAlso: AX=0001h
  2381. --------a-490003-----------------------------
  2382. INT 49 - MAGic v1.16+ - SHIFT MAGNIFIED WINDOW TO INCLUDE SPECIFIED LOCATION
  2383.     AX = 0003h
  2384.     BX = vertical position (character row [text] or pixel row [graphics])
  2385.     DX = horizontal position (char column [text] or 8-pixel units [gr])
  2386. Return: AX = status
  2387.         0000h successful
  2388.         FFFFh MAGic busy, retry later
  2389.     BX,CX,DX destroyed
  2390. Note:    window is not moved if the position is inside the current window
  2391. SeeAlso: AX=0001h,AX=0004h,AX=0005h
  2392. --------a-490004-----------------------------
  2393. INT 49 - MAGic v1.16+ - REPOSITION MAGNIFIED WINDOW
  2394.     AX = 0004h
  2395.     BX = vertical position of upper left corner
  2396.     DX = horizontal position
  2397. Return: AX = status (see AX=0003h)
  2398.     BX,CX,DX destroyed
  2399. SeeAlso: AX=0001h,AX=0003h,AX=0005h
  2400. --------a-490005-----------------------------
  2401. INT 49 - MAGic v1.16+ - GET POSITION OF MAGNIFIED WINDOW
  2402.     AX = 0005h
  2403. Return: AX = status
  2404.         0000h successful
  2405.         BX = vertical position (char row or pixel row)
  2406.         DX = horizontal position (char column or 8-pixel units)
  2407.         FFFFh MAGic busy, retry later
  2408.         BX,DX destroyed
  2409.     CX destroyed
  2410. SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0006h,AX=0007h
  2411. --------a-490006-----------------------------
  2412. INT 49 - MAGic v1.16+ - GET SIZE OF FULL SCREEN
  2413.     AX = 0006h
  2414. Return: AX = status
  2415.         0000h successful
  2416.         BX = vertical size (char rows or pixel rows)
  2417.         DX = horizontal size (char cols or 8-pixel units)
  2418.         FFFFh MAGic busy, retry later
  2419.         BX,DX destroyed
  2420.     CX destroyed
  2421. SeeAlso: AX=0001h,AX=0005h,AX=0007h
  2422. --------a-490007-----------------------------
  2423. INT 49 - MAGic v1.16+ - GET SIZE OF MAGNIFICATION WINDOW
  2424.     AX = 0007h
  2425. Return: AX = status
  2426.         0000h successful
  2427.         BX = vertical size (char rows or pixel rows)
  2428.         DX = horizontal size (char cols or 8-pixel units)
  2429.         FFFEh invalid function
  2430.         FFFFh MAGic busy, retry later
  2431.         BX,DX destroyed
  2432.     CX destroyed
  2433. BUG:    in v1.16 and v1.17, this function is not recognized as valid, but
  2434.       AX=0000h is accepted and will branch into hyperspace
  2435. SeeAlso: AX=0001h,AX=0006h
  2436. --------a-490008-----------------------------
  2437. INT 49 - MAGic v1.23+ - SET TEXT MODE MAGNIFICATION SIZE
  2438.     AX = 0008h
  2439.     BX = scaling factor (01h=1.4 times, 02h, 04h, 06h, 08h, 09h=12 times)
  2440. Return: AX = status
  2441.         0000h successful
  2442.         FFFBh scaling factor only available in MAGic Deluxe
  2443.         FFFCh already in magnified state, can't set size
  2444. Notes:    this call specifies the amount a subsequent call to AX=0001h should
  2445.       magnify the display
  2446.     scaling factors greater than 2 are only available in MAGic Deluxe
  2447. SeeAlso: AX=0001h
  2448. --------V-4901-------------------------------
  2449. INT 49 - TI Professional PC - CRT - SET CURSOR SIZE AND TYPE
  2450.     AH = 01h
  2451.     CH = cursor start line (bits 3-0) and status (bits 6-5)
  2452.         status bits:
  2453.         00 non-blinking cursor
  2454.         01 no cursor
  2455.         10 fast-blinking cursor
  2456.         11 slow-blinking cursor
  2457.     CL = cursor end line
  2458. Return: nothing
  2459. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2460. SeeAlso: AH=02h,AH=03h,INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  2461. SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  2462. SeeAlso: INT 57"TI Professional"
  2463. --------V-4902-------------------------------
  2464. INT 49 - TI Professional PC - CRT - SET CURSOR POSITION
  2465.     AH = 02h
  2466.     DH = column
  2467.     DL = row
  2468. Return: DX destroyed
  2469. Notes:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2470.     the TI swaps the row and column compared to the equivalent IBM call
  2471. SeeAlso: AH=01h,AH=03h
  2472. --------V-4903-------------------------------
  2473. INT 49 - TI Professional PC - CRT - GET CURSOR POSTION AND TYPE
  2474.     AH = 03h
  2475. Return: CH = cursor start and status (see AH=01h)
  2476.     CL = cursor end line
  2477.     DH = cursor column
  2478.     DL = cursor row
  2479. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2480. SeeAlso: AH=01h,AH=02h
  2481. --------V-4906-------------------------------
  2482. INT 49 - TI Professional PC - CRT - SCROLL UP/COPY WINDOW
  2483.     AH = 06h
  2484.     AL = source blanking
  2485.         00h blank source region (move/scroll)
  2486.         nonzero do not blank source region (copy)
  2487.     DH,DL = source start column,row
  2488.     BH,BL = destination start column,row
  2489.     CH = width of region to move/copy
  2490.     CL = height of region to move/copy
  2491. Return: nothing
  2492. Notes:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2493.     the specified region may be wider than the screen, but reliable
  2494.       operation then requires that the height be exactly one row
  2495. SeeAlso: AH=01h,AH=02h,AH=07h,AH=13h,AH=14h
  2496. --------V-4907-------------------------------
  2497. INT 49 - TI Professional PC - CRT - SCROLL DOWN/COPY WINDOW
  2498.     AH = 07h
  2499.     AL = source blanking
  2500.         00h blank source region (move/scroll)
  2501.         nonzero do not blank source region (copy)
  2502.     DH,DL = source start column,row
  2503.     BH,BL = destination start column,row
  2504.     CH = width of region to move/copy
  2505.     CL = height of region to move/copy
  2506. Return: nothing
  2507. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2508. SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h,AH=14h
  2509. --------V-4908-------------------------------
  2510. INT 49 - TI Professional PC - CRT - GET CHARACTER AND ATTRIBUTE AT POSITION
  2511.     AH = 08h
  2512. Return: AL = character at current cursor position
  2513.     AH = attribute
  2514. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2515. SeeAlso: AH=01h,AH=09h,AH=0Ah,AH=0Eh,INT 10/AH=08h
  2516. --------V-4909-------------------------------
  2517. INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH ATTRIBUTE
  2518.     AH = 09h
  2519.     AL = character to write
  2520.     BL = attribute to use (becomes new current attribute)
  2521.     CX = number of times to write character
  2522. Return: nothing
  2523. Desc:    write CX copies of the character in AL beginning at the current cursor
  2524.       position
  2525. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2526. SeeAlso: AH=01h,AH=08h,AH=0Ah,AH=0Eh,INT 10/AH=09h
  2527. --------V-490A-------------------------------
  2528. INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH CURRENT ATTRIBUTE
  2529.     AH = 0Ah
  2530.     AL = character to write
  2531.     CX = number of times to write character
  2532. Return: nothing
  2533. Desc:    write CX copies of the character in AL beginning at the current cursor
  2534.       position
  2535. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2536. SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Eh,INT 10/AH=0Ah
  2537. --------V-490E-------------------------------
  2538. INT 49 - TI Professional PC - CRT - TTY OUTPUT
  2539.     AH = 0Eh
  2540.     AL = character to write
  2541. Return: nothing
  2542. Desc:    write the character in AL at the current cursor position, advancing
  2543.       the cursor, and interpreting CR, LF, TAB, and BEL characters
  2544. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2545. SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Ah,INT 10/AH=0Eh
  2546. --------V-4910-------------------------------
  2547. INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH ATTRIBUTE
  2548.     AH = 10h
  2549.     AL = attribute (becomes new current attribute)
  2550.     DX:BX -> string of characters to write
  2551.     CX = length of string
  2552. Return: nothing
  2553. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2554. BUG:    CX must not be 0000h on entry, or the system will crash
  2555. SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=11h
  2556. --------V-4911-------------------------------
  2557. INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH CURR ATTRIB
  2558.     AH = 11h
  2559.     DX:BX -> string of characters to write
  2560.     CX = length of string
  2561. Return: nothing
  2562. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2563. BUG:    CX must not be 0000h on entry, or the system will crash
  2564. SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=10h
  2565. --------V-4912-------------------------------
  2566. INT 49 - TI Professional PC - CRT - FILL ENTIRE SCREEN WITH ATTRIBUTE
  2567.     AH = 12h
  2568.     AL = attribute (see #2465)
  2569. Return: nothing
  2570. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2571. SeeAlso: AH=01h,AH=02h
  2572.  
  2573. Bitfields for TI Professional PC screen attribute:
  2574. Bit(s)    Description    (Table 2465)
  2575.  7    alternate character set (requires user-supplied ROM)
  2576.  6    blink
  2577.  5    underline
  2578.  4    reverse video
  2579.  3    character enable
  2580.  2    green (color) or 58% intensity (gray-scale)
  2581.  1    red (color)  or 27.5% intensity
  2582.  0    blue (color) or 14.5% intensity
  2583. --------V-4913-------------------------------
  2584. INT 49 - TI Professional PC - CRT - CLEAR ENTIRE TEXT SCREEN AND HOME CURSOR
  2585.     AH = 13h
  2586. Return: nothing
  2587. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2588. SeeAlso: AH=01h,AH=02h,AH=06h,AH=14h
  2589. --------V-4914-------------------------------
  2590. INT 49 - TI Professional PC - CRT - CLEAR ENTIRE GRAPHICS SCREEN
  2591.     AH = 14h
  2592. Return: nothing
  2593. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2594. SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h
  2595. --------V-4915-------------------------------
  2596. INT 49 - TI Professional PC - CRT - SET PROTECTED STATUS AREA
  2597.     AH = 15h
  2598.     CL = row at which to start status area, or 00h to cancel
  2599.     CH = 00h
  2600. Return: nothing
  2601. Desc:    set a protected area of the screen which will not be affected by TTY
  2602.       writes or the scrolls they may generate
  2603. Notes:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2604.     the current cursor position must be above the status area in order to
  2605.       set the protected area
  2606. SeeAlso: AH=01h,AH=02h
  2607. --------V-4916-------------------------------
  2608. INT 49 - TI Professional PC - CRT - SET ATTRIBUTE LATCH
  2609.     AH = 16h
  2610.     BL = new attribute (see #2465)
  2611. Return: nothing
  2612. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2613. SeeAlso: AH=01h,AH=02h
  2614. --------V-4917-------------------------------
  2615. INT 49 - TI Professional PC - CRT - GET START-OF-DISPLAY POINTER
  2616.     AH = 17h
  2617. Return: DX = current offset at which display starts
  2618. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2619. SeeAlso: AH=01h,AH=02h,INT 10/AH=FEh
  2620. --------V-4918-------------------------------
  2621. INT 49 - TI Professional PC - CRT - PRINT TTY STRING
  2622.     AH = 18h
  2623.     CS:BX -> counted string (count byte with length followed by string)
  2624. Return: nothing
  2625. Notes:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2626.     the string must be located in the caller's code segment; any TSRs
  2627.       which want to hook INT 49 must check for this function and emulate
  2628.       it, because the BIOS retrieves the caller's CS from the stack
  2629. SeeAlso: AH=01h,AH=02h,AH=0Eh
  2630. --------B-4A---------------------------------
  2631. INT 4A C - SYSTEM - USER ALARM HANDLER
  2632. Desc:    This interrupt is invoked by the BIOS when a real-time clock alarm
  2633.       occurs; an application may use it to perform an action at a
  2634.       predetermined time.
  2635. Note:    this interrupt is called from within a hardware interrupt handler,
  2636.       so all usual precautions against reentering DOS must be taken
  2637. SeeAlso: INT 1A/AH=06h
  2638. --------h-4A---------------------------------
  2639. INT 4A - Z100 - Slave 8259 - S100 vectored line 2
  2640. SeeAlso: INT 49"Z100",INT 4B"Z100"
  2641. --------b-4A---------------------------------
  2642. INT 4A - Tandy 2000 - PRINT SCREEN
  2643. Note:    this interrupt is identical to INT 05
  2644. SeeAlso: INT 05"PRINT SCREEN"
  2645. --------O-4A---------------------------------
  2646. INT 4A - Acorn BBC Master 512 - "OSWORD" - MISC FUNCTIONS USING CONTROL BLOCK
  2647.     AL = function code
  2648.         FAh transfer data between 80186 and 65C12 I/O processor
  2649.     DS:BX -> control block (see #2466)
  2650. Return: FLAGS destroyed
  2651.     control block updated
  2652. Note:    there are more functions than are listed here, but details are not
  2653.       available
  2654. SeeAlso: INT 40"Acorn",INT 4B"Acorn",INT 4C"Acorn"
  2655.  
  2656. Format of BBC Master control block for function FAh:
  2657. Offset    Size    Description    (Table 2466)
  2658.  00h    BYTE    number of parameters sent to I/O processor (0Dh,0Eh)
  2659.  01h    BYTE    number of parameters read from I/O processor (01h)
  2660.  02h    DWORD    I/O processor address
  2661.  06h    DWORD    80186 segment:offset address
  2662.  0Ah    WORD    number of bytes to transfer
  2663.  0Ch    BYTE    operation type
  2664.         00h write to 65C12 at 24 us/byte
  2665.         01h read from 65C12 at 24 us/byte
  2666.         02h write to 65C12 at 26 us/word
  2667.         03h read from 65C12 at 26 us/word
  2668.         04h write to 65C12 at 10 us/byte using 256-byte blocks
  2669.         05h read from 65C12 at 10 us/byte using 256-byte blocks
  2670.  0Dh    BYTE    65C12 memory access control (only used if offset 00h = 0Eh)
  2671.         (see #2467)
  2672.  
  2673. Bitfields for 65C12 memory access control:
  2674. Bit(s)    Description    (Table 2467)
  2675.  7    unused
  2676.  6    always use main screen memory if I/O addr 3000h-7FFFh (overrides bit 5)
  2677.  5    use shadow screen memory if screen address specified
  2678.  4    use current ROM rather than ROM selected by bits 3-0 (only if I/O
  2679.       address between 8000h and BFFFh)
  2680.  3-0    paged ROM number
  2681. --------b-4A00-------------------------------
  2682. INT 4A - TI Professional PC - KEYBOARD - GET KEYPRESS
  2683.     AH = 00h
  2684. Return: AX = keystroke (AH=00h for ASCII keys -- no scan code)
  2685. SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=00h
  2686. SeeAlso: INT 47"TI Professional",INT 48/AH=00h"TI Professional"
  2687. SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  2688. SeeAlso: INT 5B"TI Professional"
  2689. --------b-4A01-------------------------------
  2690. INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD STATUS
  2691.     AH = 01h
  2692. Return: ZF set if no keystroke available
  2693.     ZF clear if keystrokes in buffer
  2694.         AX = next keystroke (AH=00h for ASCII keys -- no scan code)
  2695. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=01h
  2696. --------b-4A02-------------------------------
  2697. INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD MODE
  2698.     AH = 02h
  2699. Return: AL = shift states (see #2468)
  2700. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=02h
  2701.  
  2702. Bitfields for TI Professional PC keyboard shift states:
  2703. Bit(s)    Description    (Table 2468)
  2704.  0    Ctrl key pressed
  2705.  1    Alt key pressed
  2706.  2    either Shift key pressed
  2707.  3-6    0
  2708.  7    CapsLock is ON
  2709. --------b-4A03-------------------------------
  2710. INT 4A - TI Professional PC - KEYBOARD - FLUSH KEYBOARD BUFFER
  2711.     AH = 03h
  2712. Return: nothing
  2713. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h
  2714. --------b-4A04-------------------------------
  2715. INT 4A - TI Professional PC - KEYBOARD - SEND COMMAND TO KEYBOARD
  2716.     AH = 04h
  2717.     AL = command
  2718.         00h reset to default states
  2719.         01h enable auto-repeat (default)
  2720.         02h disable auto-repeat
  2721.         03h lock keyboard
  2722.         04h unlock keyboard (default)
  2723.         05h enable keyclick (requires hardware modification to work)
  2724.         06h disable keyclick (default)
  2725. Return: nothing
  2726. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h
  2727. --------b-4A05-------------------------------
  2728. INT 4A - TI Professional PC - KEYBOARD - INSERT CHARACTER INTO KEYBOARD BUFFER
  2729.     AH = 05h
  2730.     BX = character code (BH=00h if ASCII character, BL=00h/BH nonzero for
  2731.           extended codes) (see #2469)
  2732. Return: ZF set if keyboard buffer was already full
  2733.     ZF clear if keystroke inserted into buffer
  2734. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 5B"TI"
  2735.  
  2736. (Table 2469)
  2737. Values for TI Professional PC scan/character codes:
  2738.  Scan    Key    Normal    Shift    Ctrl    Alt    Notes
  2739.  00h      -- unused
  2740.  01h    F5    3F00h    5800h    6200h    6C00h
  2741.  02h    F6    4000h    5900h    6300h    6D00h
  2742.  03h    F7    4100h    5A00h    6400h    6E00h
  2743.  04h    F8    4200h    5B00h    6500h    6F00h
  2744.  05h    F9    4300h    5C00h    6600h    7000h
  2745.  06h    F10    4400h    5D00h    6700h    7100h
  2746.  07h    F11    4500h    0800h    0A00h    0C00h
  2747.  08h    F12    4600h    0900h    0B00h    0D00h
  2748.  09h    1 !    0031h    0021h    ----    7800h
  2749.  0Ah    2 @    0032h    0040h    0300h    7900h
  2750.  0Bh    3 #    0033h    0023h    ----    7A00h
  2751.  0Ch    4 $    0034h    0024h    ----    7B00h
  2752.  0Dh    5 %    0035h    0025h    ----    7C00h
  2753.  0Eh    6 ^    0036h    005Eh    001Eh    7D00h
  2754.  0Fh    7 &    0037h    0026h    ----    7E00h
  2755.  10h    8 *    0038h    002Ah    ----    7F00h
  2756.  11h    9 (    0039h    0028h    ----    8000h
  2757.  12h    0 )    0030h    0029h    ----    8100h
  2758.  13h    - _    002Dh    005Fh    001Fh    8200h
  2759.  14h    = +    003Dh    002Bh    ----    8300h
  2760.  15h BACK SPACE 0008h    0008h    007Fh    ----
  2761.  16h    ` ~    0060h    007Eh    ----    ----
  2762.  17h    NUM =    003Dh    003Dh    003Dh    8C00h
  2763.  18h    NUM +    002Bh    002Bh    002Bh    8D00h
  2764.  19h   NUM SPAC    0020h    0020h    0020h    8E00h
  2765.  1Ah   NUM TAB    0009h    0F00h    0009h    8F00h
  2766.  1Bh    NUM 1    0031h    0031h    0031h    (alt-###)    [Note 5]
  2767.  1Ch    (unused)
  2768.  1Dh    NUM 0    0030h    0030h    0030h    (alt-###)    [Note 5]
  2769.  1Eh  NUM ENTER    000Dh    000Dh    000Dh    ----
  2770.  1Fh    NUM 4    0034h    0034h    0034h    (alt-###)    [Note 5]
  2771.  20h    NUM 5    0035h    0035h    0035h    (alt-###)    [Note 5]
  2772.  21h    NUM 9    0039h    0039h    0039h    (alt-###)    [Note 5]
  2773.  22h    NUM -    002Dh    002Dh    002Dh    ----
  2774.  23h    NUM 2    0032h    0032h    0032h    (alt-###)    [Note 5]
  2775.  24h-26h  -- unused
  2776.  27h    NUM 7    0037h    0037h    0037h    (alt-###)    [Note 5]
  2777.  28h    NUM 8    0038h    0038h    0038h    (alt-###)    [Note 5]
  2778.  29h    NUM 6    0036h    0036h    0036h    (alt-###)    [Note 5]
  2779.  2Ah    NUM ,    002Ch    002Ch    002Ch    ----
  2780.  2Bh    NUM 3    0033h    0033h    0033h    (alt-###)    [Note 5]
  2781.  2Ch    NUM .    002Eh    002Eh    002Eh    ----
  2782.  2Dh    PRINT    7200h    [Note2]    ----    ----    [Notes 1,2]
  2783.  2Eh   RtArrow    4D00h    8A00h    7400h    4E00h
  2784.  2Fh    INS    5200h    2800h    2900h    2A00h    [Note 1]
  2785.  30h    DEL    5300h    3800h    3900h    3A00h    [Note 1]
  2786.  31h    TAB    0009h    0F00h    0009h    ----
  2787.  32h    Q    0071h    0051h    0011h    1000h
  2788.  33h    W    0077h    0057h    0017h    1100h
  2789.  34h    E    0065h    0045h    0005h    1200h
  2790.  35h    R    0072h    0052h    0012h    1300h
  2791.  36h    T    0074h    0054h    0014h    1400h
  2792.  37h    Y    0079h    0059h    0019h    1500h
  2793.  38h    U    0075h    0055h    0015h    1600h
  2794.  39h    I    0069h    0049h    0009h    1700h
  2795.  3Ah    O    006Fh    004Fh    000Fh    1800h
  2796.  3Bh    P    0070h    0050h    0010h    1900h
  2797.  3Ch    [ {    005Bh    007Bh    001Bh    ----
  2798.  3Dh    ] }    005Dh    007Dh    001Dh    ----
  2799.  3Eh  LINE FEED    000Ah    000Ah    7500h    4F00h
  2800.  3Fh  BRK/PAUS    [Note3]    [Note4]    ----    ----    [Notes 1,3,4]
  2801.  40h  UpArrow    4800h    8800h    8400h    4900h
  2802.  41h    ESC    001Bh    001Bh    001Bh    ----
  2803.  42h    A    0061h    0041h    0001h    1E00h
  2804.  43h    S    0073h    0053h    0013h    1F00h
  2805.  44h    D    0064h    0044h    0004h    2000h
  2806.  45h    F    0066h    0046h    0006h    2100h
  2807.  46h    G    0067h    0047h    0007h    2200h
  2808.  47h    H    0068h    0048h    0008h    2300h
  2809.  48h    J    006Ah    004Ah    000Ah    2400h
  2810.  49h    K    006Bh    004Bh    000Bh    2500h
  2811.  4Ah    L    006Ch    004Ch    000Ch    2600h
  2812.  4Bh    ; :    003Bh    003Ah    ----    ----
  2813.  4Ch    ' "    0027h    0022h    ----    ----
  2814.  4Dh    RETURN    000Dh    000Dh    000Dh    ----
  2815.  4Eh    \ |    005Ch    007Ch    001Ch    ----
  2816.  4Fh  LeftArrow    4B00h    8B00h    7300h    4C00h
  2817.  50h    HOME    4700h    8600h    7700h    8500h
  2818.  51h  Space Bar    0020h    0020h    0020h    0020h
  2819.  52h    Z    007Ah    005Ah    001Ah    2C00h
  2820.  53h    X    0078h    0058h    0018h    2D00h
  2821.  54h    C    0063h    0043h    0003h    2E00h
  2822.  55h    V    0076h    0056h    0016h    2F00h
  2823.  56h    B    0062h    0042h    0002h    3000h
  2824.  57h    N    006Eh    004Eh    000Eh    3100h
  2825.  58h    M    006Dh    004Dh    000Dh    3200h
  2826.  59h    , <    002Ch    003Ch    ----    ----
  2827.  5Ah  PRINT    7200h    [Note2]    ----    ----    [Notes 1,2]
  2828.  5Bh    . >    002Eh    003Eh    ----    ----
  2829.  5Ch    / ?    002Fh    003Fh    ----    ----
  2830.  5Dh    (unused)
  2831.  5Eh    DEL    5300h    3800h    3900h    3A00h    [Note 1]
  2832.  5Fh    INS    5200h    2800h    2900h    2A00h    [Note 1]
  2833.  60h  DownArrow    5000h    8900h    7600h    5100h
  2834.  61h-63h  -- unused
  2835.  64h  BRK/PAUS    [Note3]    [Note4]    ----    ----    [Notes 1,3,4]
  2836.  65h    F1    3B00h    5400h    5E00h    6800h
  2837.  66h    F2    3C00h    5500h    5F00h    6900h
  2838.  67h    F3    3D00h    5600h    6000h    6A00h
  2839.  68h    F4    3E00h    5700h    6100h    6B00h
  2840.  69h-6Fh  -- unused
  2841. Notes:    [1] four of the keys can have differing scan codes, depending on the
  2842.       actual keyboard; the BIOS accepts either scan code ("normal": 2Fh,
  2843.       30h, 5Ah, 64h; "alternate": 2Dh,3Fh,5Eh,5Fh) for any of these keys
  2844.     [2] Shift-Print invokes INT 5E for a screen dump; the PRTSCRN.DEV
  2845.       device driver also supports Alt-Print, Ctrl-Print, Shift-Alt-Print,
  2846.       and Shift-Ctrl-Print for dumping graphics in various permutations
  2847.     [3] BRK/PAUS invokes INT 5C for a pause, then stuffs 0100h into the
  2848.       keyboard buffer
  2849.     [4] Shift-BRK/PAUS invokes INT 5D for the Break, then stuffs 0000h
  2850.       into the keyboard buffer; MS-DOS hooks INT 5D to keep the 0000h from
  2851.       appearing in the keyboard buffer
  2852.     [5] on the TI Pro, one enters an arbitrary character slightly
  2853.       differently than on a standard PC: exactly three numberpad digits
  2854.       must be pressed (using leading zeros for codes less than 100), and
  2855.       the key for the requested code is inserted into the keyboard buffer
  2856.       immediately on pressing the third key.  The Alt key may be released
  2857.       and re-pressed arbitrarily often between digits without affecting
  2858.       the Alt-digit-digit-digit sequence.
  2859.     scan codes with bit 7 set are not key releases, but rather
  2860.       auto-repeated keystrokes, which the BIOS only places into the
  2861.       keyboard buffer if the buffer is empty at the time (thus avoiding
  2862.       typeahead of repeated keystrokes faster than they can be processed)
  2863. SeeAlso: #0005 at INT 09
  2864. --------h-4B---------------------------------
  2865. INT 4B - Z100 - Slave 8259 - S100 vectored line 3
  2866. SeeAlso: INT 4A"Z100",INT 4C"Z100"
  2867. --------d-4B---------------------------------
  2868. INT 4B - Common Access Method SCSI interface (draft revision 1.9)
  2869.     ES:DI -> CAM Control Block (see #2484 at INT 4F/AX=8100h)
  2870. Notes:    the CAM committee moved the interface to INT 4F after revision 1.9
  2871.       to avoid conflicting with the IBM SCSI interface and the Virtual
  2872.       DMA specification
  2873.     the installation check for the driver is the string "SCSI_CAM" eight
  2874.       bytes past the INT 4Bh handler
  2875.     the only driver to date reported to use the CAM interface on INT 4B
  2876.       instead of INT 4F is from Future Domain (which has drivers for CAM
  2877.       on either interrupt)
  2878. SeeAlso: INT 4F/AX=8100h
  2879. Index:    installation check;Common Access Method SCSI interface
  2880. --------b-4B---------------------------------
  2881. INT 4B - Tandy 2000 - EQUIPMENT DETERMINATION
  2882. Return: AX = BIOS equipment list word (see #2470)
  2883. Note:    this interrupt is identical to INT 11 on the Tandy 2000
  2884. SeeAlso: INT 11"EQUIPMENT",INT 4A"Tandy 2000",INT 4C"Tandy 2000"
  2885.  
  2886. Bitfields for Tandy 2000 BIOS equipment list:
  2887. Bit(s)    Description    (Table 2470)
  2888.  0    reserved
  2889.  1    monochrome graphics installed
  2890.  2    graphics with color option installed
  2891.  3    floppy disk drive 1 installed
  2892.  4    floppy disk drive 2 installed
  2893.  5    hard disk drive 1 installed
  2894.  6    hard disk drive 2 installed
  2895.  7    unused
  2896.  8    black and white monitor
  2897.  9    color monitor
  2898.  12-10    reserved
  2899.  13    printer installed
  2900.  14    reserved
  2901.  15    unused
  2902. SeeAlso: #0136 at INT 11
  2903. --------O-4B---------------------------------
  2904. INT 4B - Acorn BBC Master 512 - "OSBYTE" - MISC FUNCTIONS USING REGISTER PARAMS
  2905.     AL = function code
  2906.     BL = first parameter
  2907.     BH = second parameter (if needed)
  2908. Return: BL = first return parameter
  2909.     BH = second return parameter
  2910.     CF depends on function
  2911. SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4C"Acorn"
  2912. --------b-4B00-------------------------------
  2913. INT 4B - TI Professional PC - PARALLEL PORT - OUTPUT CHARACTER
  2914.     AH = 00h
  2915.     DL = printer number (00h)
  2916.     AL = character to print
  2917. Return: AH = printer status (see #2471)
  2918. Note:    on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  2919.       TI hook INT 4B and handle requests for DL<>00h
  2920. SeeAlso: AH=01h,AH=02h,INT 17/AH=00h
  2921. SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  2922. SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  2923.  
  2924. Bitfields for TI Professional PC printer status:
  2925. Bit(s)    Description    (Table 2471)
  2926.  0    timeout (function 00h only)
  2927.  3-1    unused
  2928.  4    busy
  2929.  5    paper out
  2930.  6    on-line (selected)
  2931.  7    fault
  2932. --------b-4B01-------------------------------
  2933. INT 4B - TI Professional PC - PARALLEL PORT - INITIALIZE PRINTER
  2934.     AH = 01h
  2935.     DL = printer number (00h)
  2936. Return: AH = printer status (see #2471)
  2937. Note:    on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  2938.       TI hook INT 4B and handle requests for DL<>00h
  2939. SeeAlso: AH=00h,AH=02h,INT 17/AH=01h
  2940. --------b-4B02-------------------------------
  2941. INT 4B - TI Professional PC - PARALLEL PORT - GET PRINTER STATUS
  2942.     AH = 02h
  2943.     DL = printer number (00h)
  2944. Return: AH = printer status (see #2471)
  2945. Note:    on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  2946.       TI hook INT 4B and handle requests for DL<>00h
  2947. SeeAlso: AH=00h,AH=01h,INT 17/AH=02h
  2948. --------d-4B80-------------------------------
  2949. INT 4B - IBM SCSI interface
  2950.     AH = 80h
  2951.     AL = 00h-10h (Corel PowerSCSI INT4BCAM.SYS)
  2952.     further details not yet available
  2953. --------d-4B8102DX0000-----------------------
  2954. INT 4B - Virtual DMA Specification (VDS) - GET VERSION
  2955.     AX = 8102h
  2956.     DX = 0000h
  2957. Return: CF clear if successful
  2958.         AH = major version number
  2959.         AL = minor version number
  2960.         BX = product number (see #2472)
  2961.         CX = product revision number
  2962.         always 0000h for QMAPS and HPMM.SYS
  2963.         always 0001h for Microsoft's EMM386.EXE v4.20-4.41
  2964.         DX = flags (see #2474)
  2965.         SI:DI = maximum DMA buffer size
  2966.     CF set on error
  2967.         AL = error code (see #2473)
  2968. Note:    bit 5 of 0040h:007Bh is supposed to be set if VDS is supported; this is
  2969.       apparently not always the case
  2970. SeeAlso: INT 2C/AX=002Bh,INT 31/AX=0400h
  2971. Index:    installation check;Virtual DMA Spec
  2972.  
  2973. (Table 2472)
  2974. Values for VDS product number:
  2975.  0000h    for Quadtel's QMAPS and Hewlett-Packard's HPMM.SYS
  2976.  0001h    for Microsoft's EMM386.EXE
  2977.  0003h    for Windows 3.x WIN386.EXE
  2978.  0300h    OS/2 (all versions to date)
  2979.  0EDCh    for DR DOS 6.0 EMM386.SYS
  2980.  4560h    ("E`") for Qualitas' 386MAX
  2981.  4D43h    ("MC") for V Communications' Memory Commander
  2982.  5145h    ("QE") for Quarterdeck's QEMM-386
  2983.  524Dh    ("RM") for Helix's Netroom RM386
  2984.  
  2985. (Table 2473)
  2986. Values for VDS error code:
  2987.  01h    region not in contiguous memory
  2988.  02h    region crossed a physical alignment boundary
  2989.  03h    unable to lock pages
  2990.  04h    no buffer available
  2991.  05h    region too large for buffer
  2992.  06h    buffer currently in use
  2993.  07h    invalid memory region
  2994.  08h    region was not locked
  2995.  09h    number of physical pages greater than table length
  2996.  0Ah    invalid buffer ID
  2997.  0Bh    copy out of buffer range
  2998.  0Ch    invalid DMA channel number
  2999.  0Dh    disable count overflow
  3000.  0Eh    disable count underflow
  3001.  0Fh    function not supported
  3002.  10h    reserved flag bits set in DX
  3003.  
  3004. Bitfields for VDS flags:
  3005. Bit(s)    Description    (Table 2474)
  3006.  0    PC/XT bus (DMA in first megabyte only)
  3007.  1    physical buffer/remap region in first megabyte
  3008.  2    automatic remap enabled
  3009.  3    all memory is physically contiguous
  3010.  4-15    reserved (zero)
  3011. --------d-4B8103-----------------------------
  3012. INT 4B - Virtual DMA Specification - LOCK DMA REGION
  3013.     AX = 8103h
  3014.     DX = flags (see #2475)
  3015.     ES:DI -> DMA descriptor structure (see #2476,#2477,#2478)
  3016. Return: CF clear if successful
  3017.         DDS physical address field filled in
  3018.         DDS buffer ID field filled (0000h if no buffer allocated)
  3019.     CF set on error
  3020.         AL = error code (see #2473)
  3021.         DDS region size field filled wth maximum contiguous length in bytes
  3022. BUGS:    Windows 3.0 does not correctly support automatic remapping or copying
  3023.       in enhanced mode
  3024.     Windows 3.0 in enhanced mode does not return a correct code on error
  3025. SeeAlso: AX=8104h,AX=8105h
  3026.  
  3027. Bitfields for VDS flags:
  3028. Bit(s)    Description    (Table 2475)
  3029.  0    reserved (zero)
  3030.  1    data should be copied into buffer (ignored if 2 set)
  3031.  2    buffer should not be allocated if region noncontiguous or crosses
  3032.       physical alignment boundary specified by 4-5
  3033.  3    don't attempt automatic remap
  3034.  4    region must not cross 64K physical alignment boundary
  3035.  5    region must not cross 128K physical alignment boundary
  3036.  6-15    reserved (zero)
  3037.  
  3038. Format of DMA descriptor structure (DDS):
  3039. Offset    Size    Description    (Table 2476)
  3040.  00h    DWORD    region size
  3041.  04h    DWORD    offset
  3042.  08h    WORD    segment/selector
  3043.  0Ah    WORD    buffer ID
  3044.  0Ch    DWORD    physical address
  3045.  
  3046. Format of Extended DMA descriptor structure (EDDS):
  3047. Offset    Size    Description    (Table 2477)
  3048.  00h    DWORD    region size
  3049.  04h    DWORD    offset
  3050.  08h    WORD    segment/selector
  3051.  0Ah    WORD    reserved
  3052.  0Ch    WORD    number available
  3053.  0Eh    WORD    number used
  3054.  10h    DWORD    region 0 physical address
  3055.  14h    DWORD    region 0 size in bytes
  3056.  18h    DWORD    region 1 physical address
  3057.  1Ch    DWORD    region 1 size in bytes
  3058.     ...
  3059.  
  3060. Format of Extended DMA descriptor structure (EDDS) with page table entries:
  3061. Offset    Size    Description    (Table 2478)
  3062.  00h    DWORD    region size
  3063.  04h    DWORD    offset
  3064.  08h    WORD    segment/selector
  3065.  0Ah    WORD    reserved
  3066.  0Ch    WORD    number available
  3067.  0Eh    WORD    number used
  3068.  10h    DWORD    page table entry 0 (same as 80386 page table entry)
  3069.  14h    DWORD    page table entry 1
  3070.     ...
  3071. Note:    bits 1-11 of the page table entries should be zero; bit 0 set if page
  3072.       is present and locked
  3073. --------d-4B8104-----------------------------
  3074. INT 4B - Virtual DMA Specification - UNLOCK DMA REGION
  3075.     AX = 8104h
  3076.     DX = flags
  3077.         bit 0: reserved (zero)
  3078.         bit 1: data should be copied out of buffer
  3079.         bits 2-15 reserved (zero)
  3080.     ES:DI -> DMA descriptor structure (see #2476,#2477) with region size,
  3081.           physical address, and buffer ID fields set
  3082. Return: CF clear if successful
  3083.         DDS physical address field set
  3084.         DDS buffer ID field set (0000h if no buffer allocated)
  3085.     CF set on error
  3086.         AL = error code (see #2473)
  3087.         DDS region size field filled wth maximum contiguous length in bytes
  3088. Note:    Windows 3.0 does not check whether the region extends beyond the end of
  3089.       a segment
  3090. BUG:    Windows 3.0 in enhanced mode does not return a correct code on error
  3091. SeeAlso: AX=8103h,AX=8106h
  3092. --------d-4B8105-----------------------------
  3093. INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION
  3094.     AX = 8105h
  3095.     DX = flags (see #2479)
  3096.     ES:DI -> Extended DMA descriptor structure (see #2477,#2478)
  3097.           region size, linear segment, linear offset, and number avail
  3098.           fields set
  3099. Return: CF clear if successful
  3100.         EDDS number used field set
  3101.         if DX bit 6 set, lower 12 bits of BX = offset in first page
  3102.     CF set on error
  3103.         AL = error code (see #2473)
  3104.         EDDS region size field filled with max length in bytes that can be
  3105.           locked and described in the EDDS table
  3106. BUG:    Windows 3.0 in enhanced mode may return zero instead of the physical
  3107.       page address for pages which were originally not present
  3108. SeeAlso: AX=8103h,AX=8106h
  3109.  
  3110. Bitfields for VDS flags:
  3111. Bit(s)    Description    (Table 2479)
  3112.  0-5    reserved (zero)
  3113.  6    EDDS should be returned with page table entries
  3114.  7    only present pages should be locked (not-present pages receive entry
  3115.       of 0000h)
  3116.  8-15    reserved (zero)
  3117. --------d-4B8106-----------------------------
  3118. INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION
  3119.     AX = 8106h
  3120.     DX = flags (see #2480)
  3121.     ES:DI -> Extended DMA descriptor structure (see #2477,#2478) returned
  3122.           by AX=8105h
  3123. Return: CF clear if successful
  3124.     CF set on error
  3125.         AL = error code (see #2473)
  3126. Note:    according to the Microsoft version of the VDS specification, the
  3127.       actual scatter/gather list is ignored, while according to the IBM
  3128.       version of the specification, "the result of a LOCK operation"
  3129.       must be provided to this function
  3130. SeeAlso: AX=8104h,AX=8105h
  3131.  
  3132. Bitfields for VDS flags:
  3133. Bit(s)    Description    (Table 2480)
  3134.  0-5    reserved (zero)
  3135.  6    EDDS contains page table entries
  3136.  7    EDDS may contain not-present pages (entry = 0000h)
  3137.  8-15    reserved (zero)
  3138. --------d-4B8107-----------------------------
  3139. INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER
  3140.     AX = 8107h
  3141.     DX = flags
  3142.         bit 0: reserved (zero)
  3143.         bit 1: data should be copied into buffer
  3144.         bits  2-15 reserved (zero)
  3145.     ES:DI -> DMA descriptor structure (see #2476) with region size set
  3146.           (also region offset and region segment if DX bit 1 set)
  3147. Return: CF clear if successful
  3148.         DDS physical address and buffer ID set
  3149.         DDS region size filled with length of buffer
  3150.     CF set on error
  3151.         AL = error code (see #2473)
  3152. SeeAlso: AX=8108h
  3153. --------d-4B8108-----------------------------
  3154. INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER
  3155.     AX = 8108h
  3156.     DX = flags
  3157.         bit 0: reserved (zero)
  3158.         bit 1: data should be copied out of buffer
  3159.         bits 2-15 reserved (zero)
  3160.     ES:DI -> DMA descriptor structure (see #2476,#2477) with buffer ID set
  3161.           (also region size/region offset/segment if DX bit 1 set)
  3162. Return: CF clear if successful
  3163.     CF set on error
  3164.         AL = error code (see #2473)
  3165. BUG:    under Windows 3.0 Enhanced mode, you must specify that data be copied
  3166.       for this function to work correctly
  3167. SeeAlso: AX=8107h
  3168. --------d-4B8109DX0000-----------------------
  3169. INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER
  3170.     AX = 8109h
  3171.     DX = 0000h
  3172.     ES:DI -> DMA descriptor structure (see #2476,#2477) with buffer ID,
  3173.           region segment/offset, and region size fields set
  3174.     BX:CX = starting offset into DMA buffer
  3175. Return: CF clear if successful
  3176.     CF set on error
  3177.         AL = error code (see #2473)
  3178. BUG:    Windows 3.0 Enhanced mode does not correctly interpret the copy count
  3179. SeeAlso: AX=810Ah
  3180. --------d-4B810ADX0000-----------------------
  3181. INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER
  3182.     AX = 810Ah
  3183.     DX = 0000h
  3184.     ES:DI -> DMA descriptor structure (see #2476,#2478) with buffer ID,
  3185.           region segment/offset, and region size fields set
  3186.     BX:CX = starting offset into DMA buffer
  3187. Return: CF clear if successful
  3188.     CF set on error
  3189.         AL = error code (see #2473)
  3190. BUG:    Windows 3.0 Enhanced mode does not correctly interpret the copy count
  3191. SeeAlso: AX=8109h
  3192. --------d-4B810B-----------------------------
  3193. INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION
  3194.     AX = 810Bh
  3195.     BX = DMA channel number
  3196.     DX = 0000h
  3197. Return: CF clear if successful
  3198.     CF set on error
  3199.         AL = error code (see #2473)
  3200. SeeAlso: AX=810Ch
  3201. --------d-4B810C-----------------------------
  3202. INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION
  3203.     AX = 810Ch
  3204.     BX = DMA channel number
  3205.     DX = 0000h
  3206. Return: CF clear if successful
  3207.         ZF set if disable count decremented to zero
  3208.     CF set on error
  3209.         AL = error code (see #2473)
  3210. SeeAlso: AX=810Bh
  3211. --------Q-4B810D-----------------------------
  3212. INT 4B - QEMM-386 - BUG
  3213.     AX = 810Dh
  3214. Note:    the code in QEMM v5.11 and 6.00 jumps to an invalid location on this
  3215.       call
  3216. --------h-4C---------------------------------
  3217. INT 4C - Z100 - Slave 8259 - S100 vectored line 4
  3218. SeeAlso: INT 4B"Z100",INT 4D"Z100"
  3219. --------b-4C---------------------------------
  3220. INT 4C - TI Professional PC - CLOCK/ANALOG INTERFACE
  3221.     no details available
  3222. SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI"
  3223. SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  3224. SeeAlso: INT 58"TI Professional"
  3225. --------b-4C---------------------------------
  3226. INT 4C - Tandy 2000 - GET MEMORY SIZE
  3227. Return: AX = kilobytes of contiguous memory starting at 0
  3228. Note:    this interrupt is identical to INT 12 on the Tandy 2000
  3229. SeeAlso: INT 12"BIOS",INT 4A"Tandy 2000",INT 4B"Tandy 2000",INT 51"Tandy 2000"
  3230. --------O-4C---------------------------------
  3231. INT 4C - Acorn BBC Master 512 - "OSCLI" - INTERPRET COMMAND LINE
  3232.     DS:BX -> CR-terminated command string
  3233. Return: FLAGS destroyed
  3234. SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4B"Acorn"
  3235. --------h-4D---------------------------------
  3236. INT 4D - Z100 - Slave 8259 - S100 vectored line 5
  3237. SeeAlso: INT 4C"Z100",INT 4E"Z100"
  3238. --------B-4D00-------------------------------
  3239. INT 4D - TI Professional PC - DISK - RESET DISK SYSTEM
  3240.     AH = 00h
  3241.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  3242. Return: AH = status (see #0144 at INT 13/AH=01h)
  3243.     CF clear if successful (returned AH=00h)
  3244.     CF set on error
  3245. Note:    this function is the same as INT 13/AH=00h on a standard PC BIOS
  3246. SeeAlso: AH=01h,AH=02h,AH=08h,AH=0Bh,INT 13/AH=00h,INT 46"TI Professional"
  3247. SeeAlso: INT 48/AH=00h"TI Professional",INT 4A/AH=00h"TI"
  3248. --------B-4D01-------------------------------
  3249. INT 4D - TI Professional PC - DISK - GET STATUS OF LAST OPERATION
  3250.     AH = 01h
  3251.     DL = drive (bit 7 set for hard disk)
  3252. Return: CF clear if status unchanged
  3253.     CF set if status changed since last call
  3254.     AH = 00h
  3255.     AL = status of previous operation (see #0144 at INT 13/AH=01h)
  3256. Notes:    this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
  3257.     the TI's BIOS tranparently performs a number of retries, and an error
  3258.       status is only reported if all of the retries fail.  To get the error
  3259.       status if the operation succeeded on a retry, use AH=07h instead
  3260. SeeAlso: AH=00h,AH=07h,INT 13/AH=01h
  3261. --------B-4D02-------------------------------
  3262. INT 4D - TI Professional PC - DISK - READ SECTOR(S) INTO MEMORY
  3263.     AH = 02h
  3264.     AL = number of sectors to read (must be nonzero)
  3265.     CH = low eight bits of cylinder number
  3266.     CL = sector number 1-63 (bits 0-5)
  3267.          high two bits of cylinder (bits 6-7, hard disk only)
  3268.     DH = head number
  3269.     DL = drive number (bit 7 set for hard disk)
  3270.     ES:BX -> data buffer
  3271. Return: CF set on error
  3272.         if AH = 11h (corrected ECC error), AL = burst length
  3273.     CF clear if successful
  3274.     AH = status (see #0144 at INT 13/AH=01h)
  3275.     AL = number of sectors transferred
  3276.     ES:BX -> buffer for last sector processed (including one with errors)
  3277. SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,INT 13/AH=02h
  3278. --------B-4D03-------------------------------
  3279. INT 4D - TI Professional PC - DISK - WRITE SECTOR(S) FROM MEMORY
  3280.     AH = 03h
  3281.     AL = number of sectors to write (must be nonzero)
  3282.     CH = low eight bits of cylinder number
  3283.     CL = sector number 1-63 (bits 0-5)
  3284.          high two bits of cylinder (bits 6-7, hard disk only)
  3285.     DH = head number
  3286.     DL = drive number (bit 7 set for hard disk)
  3287.     ES:BX -> buffer containing data
  3288. Return: CF set on error
  3289.         if AH = 11h (corrected ECC error), AL = burst length
  3290.     CF clear if successful
  3291.     AH = status (see #0144 at INT 13/AH=01h)
  3292.     AL = number of sectors transferred
  3293.     ES:BX -> buffer for last sector processed (including one with errors)
  3294. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=03h
  3295. --------B-4D04-------------------------------
  3296. INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR CRC(S)
  3297.     AH = 04h
  3298.     AL = number of sectors to verify (must be nonzero)
  3299.     CH = low eight bits of cylinder number
  3300.     CL = sector number 1-63 (bits 0-5)
  3301.          high two bits of cylinder (bits 6-7, hard disk only)
  3302.     DH = head number
  3303.     DL = drive number (bit 7 set for hard disk)
  3304.     ES:BX -> data buffer
  3305. Return: CF set on error
  3306.         if AH = 11h (corrected ECC error), AL = burst length
  3307.     CF clear if successful
  3308.     AH = status (see #0144 at INT 13/AH=01h)
  3309.     AL = number of sectors transferred
  3310.     ES:BX -> buffer for last sector processed (including one with errors)
  3311. Note:    even though no data is transferred, ES:BX must still be valid
  3312. SeeAlso: AH=00h,AH=01h,AH=02h,AH=06h,INT 13/AH=04h
  3313. --------B-4D05-------------------------------
  3314. INT 4D - TI Professional PC - DISK - NOP
  3315.     AH = 05h
  3316. Note:    on the TI Pro, FORMAT.COM contains direct port I/O commands to perform
  3317.       disk formatting, rather than using the BIOS
  3318. --------B-4D06-------------------------------
  3319. INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR(S)
  3320.     AH = 06h
  3321.     AL = number of sectors to verify (must be nonzero)
  3322.     CH = low eight bits of cylinder number
  3323.     CL = sector number 1-63 (bits 0-5)
  3324.          high two bits of cylinder (bits 6-7, hard disk only)
  3325.     DH = head number
  3326.     DL = drive number (bit 7 set for hard disk)
  3327.     ES:BX -> data buffer
  3328. Return: CF set on error
  3329.         if AH = 11h (corrected ECC error), AL = burst length
  3330.     CF clear if successful
  3331.     AH = status (see #0144 at INT 13/AH=01h)
  3332.     AL = number of sectors transferred
  3333.     ES:BX -> buffer for last sector processed (including one with errors)
  3334. Note:    even though no data is transferred, ES:BX must still be valid because
  3335.       an actual comparison with disk data is performed, not just the CRC
  3336.       check of the standard PC BIOS or INT 4D/AH=04h
  3337. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=04h
  3338. --------B-4D07-------------------------------
  3339. INT 4D - TI Professional PC - DISK - GET RETRY STATUS OF LAST OPERATION
  3340.     AH = 07h
  3341.     DL = drive (bit 7 set for hard disk)
  3342. Return: CF clear if status unchanged
  3343.     CF set if status changed since last call
  3344.     AH = 00h
  3345.     AL = status of previous operation (see #0144 at INT 13/AH=01h)
  3346. Notes:    this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
  3347.     the TI's BIOS tranparently performs a number of retries; this function
  3348.       returns the error status of a failed operation even if the operation
  3349.       succeeded on a retry
  3350. SeeAlso: AH=00h,AH=01h,INT 13/AH=01h
  3351. --------B-4D08-------------------------------
  3352. INT 4D - TI Professional PC - DISK - SET STANDARD DEVICE INTERFACE TABLE
  3353.     AH = 08h
  3354.     DL = drive number (00h-03h)
  3355.     AL = drive type
  3356.         00h single-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
  3357.         01h double-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
  3358.         02h single-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
  3359.         03h double-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
  3360. Return: nothing???
  3361. SeeAlso: AH=00h,AH=09h
  3362. --------B-4D09-------------------------------
  3363. INT 4D - TI Professional PC - DISK - SET DEVICE INTERFACE TABLE ADDRESS
  3364.     AH = 09h
  3365.     DL = drive number (00h-07h)
  3366.     ES:BX -> Device Interface Table (see #2481)
  3367. Return: nothing???
  3368. SeeAlso: AH=00h,AH=08h,AH=0Ah,INT 1E
  3369.  
  3370. Format of TI Professional PC Device Interface Table:
  3371. Offset    Size    Description    (Table 2481)
  3372.  00h    DWORD    -> entry point for disk routine
  3373.  04h    WORD    bytes per sector
  3374.  06h    BYTE    sectors per track
  3375.  07h    BYTE    number of heads
  3376.  08h    BYTE    number of cylinders
  3377.  09h    BYTE    retry count
  3378.  0Ah    BYTE    precompensation start
  3379. SeeAlso: #0671 at INT 1E
  3380. --------B-4D0A-------------------------------
  3381. INT 4D - TI Professional PC - DISK - GET DEVICE INTERFACE TABLE ADDRESS
  3382.     AH = 0Ah
  3383.     DL = drive number (00h-07h)
  3384. Return: AH = status
  3385.     ES:BX -> Device Interface Table (see #2481)
  3386. SeeAlso: AH=00h,AH=08h,AH=09h,INT 1E
  3387. --------B-4D0B-------------------------------
  3388. INT 4D - TI Professional PC - DISK - TURN OFF ALL DRIVES
  3389.     AH = 0Bh
  3390. Return: AH = 00h
  3391. Note:    used for diagnostics or to conserve power
  3392. SeeAlso: AH=00h
  3393. --------h-4E---------------------------------
  3394. INT 4E - Z100 - Slave 8259 - S100 vectored line 6
  3395. SeeAlso: INT 4D"Z100",INT 4F"Z100"
  3396. --------b-4E00-------------------------------
  3397. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS DATE
  3398.     AH = 00h
  3399.     BX = number of days since January 1, 1980
  3400. Return: nothing
  3401. SeeAlso: AH=01h,AH=02h
  3402. SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  3403. SeeAlso: INT 4A/AH=00h"TI",INT 4F"TI Professional"
  3404. --------b-4E01-------------------------------
  3405. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS TIME
  3406.     AH = 01h
  3407.     CH = hours
  3408.     CL = minutes
  3409.     DH = seconds
  3410.     DL = hundredths
  3411. Return: nothing
  3412. Note:    the BIOS does not validate the data passed to this function
  3413. SeeAlso: AH=00h,AH=02h
  3414. --------b-4E02-------------------------------
  3415. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - GET BIOS DATA AND TIME
  3416.     AH = 02h
  3417. Return: AX = number of days since January 1, 1980
  3418.     CH = hours
  3419.     CL = minutes
  3420.     DH = seconds
  3421.     DL = hundredths
  3422. SeeAlso: AH=00h,AH=01h
  3423. --------h-4F---------------------------------
  3424. INT 4F - Z100 - Slave 8259 - S100 vectored line 7
  3425. SeeAlso: INT 4E"Z100"
  3426. --------b-4F---------------------------------
  3427. INT 4F - TI Professional PC - SYSTEM CONFIGURATION CALL
  3428. Return: AX = system configuration word (see #2482)
  3429.     BX = size of contiguous DOS memory in paragraphs
  3430. SeeAlso: INT 11"BIOS",INT 12"BIOS",INT 40"TI Professional",INT 48/AH=09h
  3431. SeeAlso: INT 49/AH=01h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  3432. SeeAlso: INT 4E"TI Professional"
  3433.  
  3434. Bitfields for TI Professional PC system configuration:
  3435. Bit(s)    Description    (Table 2482)
  3436.  0    floppy drive 0 (A:, internal) installed
  3437.  1    floppy drive 1 (B:, internal) installed
  3438.  2    floppy drive 2 (C:, external) installed
  3439.  3    floppy drive 3 (D:, external) installed
  3440.  4    drive A: is 96tpi (80 tracks)
  3441.  5    drive A: is double-sided
  3442.  6    60 Hz power instead of 50 Hz
  3443.  7    hard disk (E: or E:/F:) installed
  3444.  8    serial port 1 installed
  3445.  9    serial port 2 installed
  3446.  10    serial port 3 installed
  3447.  11    serial port 4 installed
  3448.  14-12    installed graphics RAM
  3449.     000 none (text-only system)
  3450.     001 bank A only (graphics limited to 2 of 8 colors)
  3451.     111 banks A/B/C (graphics supports 8 of 8 colors)
  3452.  15    clock/analog board installed
  3453. --------d-4F8100-----------------------------
  3454. INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM
  3455.     AX = 8100h
  3456.     ES:BX -> CAM Control Block (CCB) (see #2484)
  3457. Return: AH = status
  3458.         00h successful
  3459.         01h invalid CCB address (0000h:0000h)
  3460. Note:    the SCSI Interface Module (SIM) may complete the requested function
  3461.       and invoke the completion callback function before this call returns
  3462. SeeAlso: AX=8200h,INT 2F/AX=7F01h,INT 4B"Common Access Method"
  3463.  
  3464. (Table 2483)
  3465. Values for CAM function code:
  3466.  00h    NOP
  3467.  01h    execute SCSI I/O
  3468.  02h    get device type
  3469.  03h    path inquiry
  3470.  04h    release SIM queue
  3471.  05h    set async callback
  3472.  06h    set device type
  3473.  07h-0Fh reserved
  3474.  10h    abort SCSI command
  3475.  11h    reset SCSI bus
  3476.  12h    reset SCSI device
  3477.  13h    terminate I/O process
  3478.  14h-1Fh reserved
  3479.  20h    engine inquiry
  3480.  21h    execute engine request
  3481.  22h-2Fh reserved
  3482.  30h    enable logical unit number
  3483.  31h    execute target I/O
  3484.  32h-7Fh reserved
  3485.  80h-FFh vendor-specific functions
  3486.  
  3487. Format of CAM Control Block:
  3488. Offset    Size    Description    (Table 2484)
  3489.  00h    DWORD    physical address of this CCB
  3490.  04h    WORD    CAM control block length
  3491.  06h    BYTE    function code (see #2483)
  3492.  07h    BYTE    CAM status (see #2487)
  3493.  08h    BYTE    SCSI status
  3494.  09h    BYTE    path ID (FFh = XPT)
  3495.  0Ah    BYTE    target ID
  3496.  0Bh    BYTE    logical unit number
  3497.  0Ch    WORD    CAM flags (see #2485)
  3498.  0Eh    BYTE    CAM address flags (see #2486)
  3499.  0Fh    BYTE    target-mode flags (see #2488)
  3500. ---function 02h---
  3501.  10h    DWORD    pointer to 36-byte buffer for inquiry data or 0000h:0000h
  3502.  14h    BYTE    peripheral device type of target logical unit number
  3503. ---function 03h---
  3504.  10h    BYTE    version number (00h-07h prior to rev 1.7, 08h = rev 1.7,
  3505.         09h-FFh = rev no, i.e. 23h = rev 2.3)
  3506.  11h    BYTE    SCSI capabilities (see #2489)
  3507.  12h    BYTE    target mode support
  3508.         bit 7: processor mode
  3509.         bit 6: phase-cognizant mode
  3510.         bit 5-0: reserved
  3511.  13h    BYTE    miscellaneous flags
  3512.         bit 7: scanned high to low instead of low to high
  3513.         bit 6: removables not included in scan
  3514.         bit 5: inquiry data not kept by XPT
  3515.         bits 4-0: reserved
  3516.  14h    WORD    engine count
  3517.  16h 14 BYTEs    vendor-specific data
  3518.  24h    DWORD    size of private data area
  3519.  28h    DWORD    asynchronous event capabilities (see #2490)
  3520.  2Ch    BYTE    highest path ID assigned
  3521.  2Dh    BYTE    SCSI device ID of initiator
  3522.  2Eh  2 BYTEs    reserved
  3523.  30h 16 BYTEs    SIM vendor ID
  3524.  40h 16 BYTEs    HBA (host bus adaptor) vendor ID
  3525.  50h  4 BYTEs    operating-system dependant usage
  3526. ---functions 00h,04h,11h,12h---
  3527.  no additional fields
  3528. ---function 05h---
  3529.  10h    DWORD    asynchronous event enables (refer to function 03h above)
  3530.  14h    DWORD    pointer to asynchronous callback routine (see #2492)
  3531.  18h    DWORD    pointer to peripheral driver buffer
  3532.  1Ch    BYTE    size of peripheral buffer
  3533. ---function 06h---
  3534.  10h    BYTE    peripheral device type of target
  3535. ---functions 10h,13h---
  3536.  10h    DWORD    pointer to CCB to be aborted
  3537. ---function 20h---
  3538.  10h    WORD    engine number
  3539.  12h    BYTE    engine type
  3540.         00h buffer memory
  3541.         01h lossless compression
  3542.         02h lossy compression
  3543.         03h encryption
  3544.  13h    BYTE    engine algorithm ID
  3545.         00h vendor-unique
  3546.         01h LZ1 variation 1 (STAC)
  3547.         02h LZ2 variation 1 (HP DCZL)
  3548.         03h LZ2 variation 2 (Infochip)
  3549.  14h    DWORD    engine memory size
  3550. ---function 21h---
  3551.  10h    DWORD    pointer to peripheral driver
  3552.  14h  4 BYTEs    reserved
  3553.  18h    DWORD    OS-dependent request-mapping info
  3554.  1Ch    DWORD    address of completion callback routine
  3555.  20h    DWORD    pointer to scatter/gather list or data buffer
  3556.  24h    DWORD    length of data transfer
  3557.  28h    DWORD    pointer to engine buffer data
  3558.  2Ch  2 BYTEs    reserved
  3559.  2Eh    WORD    number of scatter/gather entries
  3560.  30h    DWORD    maximum destination data length
  3561.  34h    DWORD    length of destination data
  3562.  38h    DWORD    source residual length
  3563.  3Ch 12 BYTEs    reserved
  3564.  48h    DWORD    OS-dependent timeout value
  3565.  4Ch  4 BYTEs    reserved
  3566.  50h    WORD    engine number
  3567.  52h    WORD    vendor-unique flags
  3568.  54h  4 BYTEs    reserved
  3569.  58h  N BYTEs    private data area for SIM
  3570. ---function 30h---
  3571.  10h    WORD    group 6 vendor-unique CDB length
  3572.  12h    WORD    group 7 vendor-unique CDB length
  3573.  14h    DWORD    pointer to target CCB list
  3574.  18h    WORD    number of target CCBs
  3575. ---other functions---
  3576.  10h    DWORD    pointer to peripheral driver
  3577.  14h    DWORD    pointer to next CCB
  3578.  18h    DWORD    OS-dependent request mapping information
  3579.  1Ch    DWORD    address of completion callback routine (see #2491)
  3580.  20h    DWORD    pointer to scatter/gather list or data buffer
  3581.  24h    DWORD    length of data transfer
  3582.  28h    DWORD    pointer to sense info buffer
  3583.  2Ch    BYTE    length of sense info buffer
  3584.  2Dh    BYTE    CDB length
  3585.  2Eh    WORD    number of scatter/gather entries
  3586.         scatter/gather list is array of 2N DWORDs, each pair specifying
  3587.           the address and length of a data block
  3588.  30h  4 BYTEs    vendor-specific data
  3589.  34h    BYTE    (ret) SCSI status
  3590.  35h    BYTE    (ret) auto-sense residual length
  3591.  36h  2 BYTEs    reserved
  3592.  38h    DWORD    (ret) residual length
  3593.  40h 12 BYTEs    Command Descriptor Block (CDB) (see #3303,#3304,#3305)
  3594.  44h    DWORD    OS-dependent timeout value
  3595.  48h    DWORD    pointer to message buffer
  3596.  4Ch    WORD    length of message buffer
  3597.  4Eh    WORD    vendor-unique flags
  3598.  50h    BYTE    tag queue action
  3599.  51h  3 BYTEs    reserved
  3600.  54h  N BYTEs    private data area for SIM
  3601.  
  3602. Bitfields for CAM flags:
  3603. Bit(s)    Description    (Table 2485)
  3604.  0    CDB is a pointer
  3605.  1    tagged queue action enable
  3606.  2    linked CDB
  3607.  3    disable callback on completion
  3608.  4    scatter/gather
  3609.  5    disable autosense
  3610.  7-6    direction (00 reserved, 01 in, 10 out, 11 no data transfer)
  3611.  9-8    reserved
  3612.  10    engine synchronize
  3613.  11    SIM queue freeze
  3614.  12    SIM queue priority
  3615.     1 head insertion
  3616.     0 tail insertion (normal)
  3617.  13    disable synchronous transfers    \ mutually
  3618.  14    initiate synchronous transfers    / exclusive
  3619.  15    disable disconnect
  3620.  
  3621. Bitfields for CAM address flags:
  3622. Bit(s)    Description    (Table 2486)
  3623.  7    SG list/data (0 = host, 1 = engine)
  3624.  6    CDB pointer    (6-1: 0=virtual addr, 1=phys addr)
  3625.  5    SG list/data
  3626.  4    sense buffer
  3627.  3    message buffer
  3628.  2    next CCB
  3629.  1    callback on completion
  3630.  0    reserved
  3631.  
  3632. (Table 2487)
  3633. Values for CAM status:
  3634.  00h    request in progress
  3635.  01h    request successful
  3636.  02h    host aborted request
  3637.  03h    unable to abort request
  3638.  04h    request completed with error
  3639.  05h    CAM is busy
  3640.  06h    invalid request
  3641.  07h    invalid path ID
  3642.  08h    no such SCSI device
  3643.  09h    unable to terminate I/O process
  3644.  0Ah    timeout on target selection
  3645.  0Bh    timeout on command
  3646.  0Dh    receive message rejection
  3647.  0Eh    sent/received SCSI bus reset
  3648.  0Fh    detected uncorrectable parity error
  3649.  10h    Autosense request failed
  3650.  11h    no HBA detected
  3651.  12h    data over/underrun
  3652.  13h    bus freed unexpectedly
  3653.  14h    target bus phase sequence failure
  3654.  15h    CCB too small
  3655.  16h    requested capability not available
  3656.  17h    sent bus device reset
  3657.  18h    terminate I/O process
  3658.  38h    invalid LUN
  3659.  39h    invalid target ID
  3660.  3Ah    unimplemented function
  3661.  3Bh    nexus not established
  3662.  3Ch    invalid initiator ID
  3663.  3Dh    received SCSI Command Descriptor Block
  3664.  3Eh    LUN already enabled
  3665.  3Fh    SCSI bus busy
  3666. Note:    bit 6 set to indicate frozen SIM queue
  3667.     bit 7 set to indicate valid autosense
  3668.  
  3669. Bitfields for CAM target-mode flags:
  3670. Bit(s)    Description    (Table 2488)
  3671.  7    data buffer valid
  3672.  6    status valid
  3673.  5    message buffer valid
  3674.  4    reserved
  3675.  3    phase-cognizant mode
  3676.  2    target CCB available
  3677.  1    disable autodisconnect
  3678.  0    disable autosave/restore
  3679.  
  3680. Bitfields for SCSI capabilities:
  3681. Bit(s)    Description    (Table 2489)
  3682.  7    modify data pointers
  3683.  6    wide bus (32 bits)
  3684.  5    wide bus (16 bits)
  3685.  4    synchronous transfers
  3686.  3    linked commands
  3687.  2    reserved
  3688.  1    tagged queueing
  3689.  0    soft reset
  3690.  
  3691. Bitfields for CAM asynchronous event capabilities:
  3692. Bit(s)    Description    (Table 2490)
  3693.  31-24    vendor-specific
  3694.  23-8    reserved
  3695.  7    new devices found during rescan
  3696.  6    SIM module deregistered
  3697.  5    SIM module registered
  3698.  4    sent bus device reset to target
  3699.  3    SCSI AEN
  3700.  2    reserved
  3701.  1    unsolicited reselection
  3702.  0    unsolicited SCSI bus reset
  3703.  
  3704. Format of Six-Byte SCSI Command Descriptor Block (CDB):
  3705. Offset    Size    Description    (Table 3303)
  3706.  00h    BYTE    operation code (see #3306)
  3707.  01h    BYTE    logical unit number (bits 7-5), SCSI-1/SCSI-2
  3708.         MSB of logical block address (bits 4-0)
  3709.  02h    WORD    logical block address (low word)
  3710.  04h    BYTE    transfer length
  3711.  05h    BYTE    control byte
  3712. SeeAlso: #3304,#3305
  3713.  
  3714. Format of Ten-Byte SCSI Command Descriptor Block (CDB):
  3715. Offset    Size    Description    (Table 3304)
  3716.  00h    BYTE    operation code (see #3306)
  3717.  01h    BYTE    logical unit number (bits 7-5), SCSI-1/SCSI-2
  3718.         reserved in SCSI-3
  3719.  02h    DWORD    logical block address (low word)
  3720.  06h    BYTE    reserved
  3721.  07h    WORD    transfer length
  3722.  09h    BYTE    control byte
  3723. SeeAlso: #3303,#3305
  3724.  
  3725. Format of Twelve-Byte SCSI Command Descriptor Block (CDB):
  3726. Offset    Size    Description    (Table 3305)
  3727.  00h    BYTE    operation code (see #3306)
  3728.  01h    BYTE    logical unit number (bits 7-5), SCSI-1/SCSI-2
  3729.         reserved in SCSI-3
  3730.  02h    DWORD    logical block address (low word)
  3731.  06h    DWORD    transfer length
  3732.  0Ah    BYTE    reserved
  3733.  0Bh    BYTE    control byte
  3734. SeeAlso: #3303,#3304
  3735.  
  3736. (Table 3306)
  3737. Values for SCSI CDB operation code for direct-access devices:
  3738.  00h    Test Unit Ready
  3739.  01h    Rezero Unit
  3740.  03h    Request Sense
  3741.  04h    Format Unit
  3742.  07h    Reassign Blocks
  3743.  08h    Read (6-byte CDB)
  3744.  0Ah    Write (6-byte CDB)
  3745.  0Bh    Seek (6-byte CDB)
  3746.  12h    Inquiry
  3747.  15h    Mode Select (6-byte CDB)
  3748.  16h    Reserve
  3749.  17h    Release
  3750.  18h    Copy
  3751.  1Ah    Mode Sense (6-byte CDB)
  3752.  1Bh    Start/Stop Unit
  3753.  1Ch    Receive Diagnostic Results
  3754.  1Dh    Send Diagnostic
  3755.  1Eh    Prevent/Allow Medium Removal
  3756.  25h    Read Capacity
  3757.  28h    Read (10-byte CDB)
  3758.  2Ah    Write (10-byte CDB)
  3759.  2Bh    Seek (10-byte CDB)
  3760.  2Eh    Write and Verify
  3761.  2Fh    Verify
  3762.  30h    Search Data High
  3763.  31h    Search Data Equal
  3764.  32h    Search Data Low
  3765.  33h    Set Limits
  3766.  34h    Prefetch
  3767.  35h    Synchronize Cache
  3768.  36h    Lock/Unlock Cache
  3769.  37h    Read Defect Data
  3770.  39h    Compare
  3771.  3Ah    Copy and Verify
  3772.  3Bh    Write Buffer
  3773.  3Ch    Read Buffer
  3774.  3Eh    Read Long
  3775.  3Fh    Write Long
  3776.  40h    Change Definition
  3777.  41h    Write Same
  3778.  4Ch    Log Select
  3779.  4Dh    Log Sense
  3780.  55h    Mode Select (10-byte CDB)
  3781.  5Ah    Mode Sense (10-byte CDB)
  3782. SeeAlso: #3303,#3304,#3305
  3783.  
  3784. (Table 2491)
  3785. Values completion callback function is called with:
  3786.     interrupts disabled
  3787.     ES:BX -> completed CCB
  3788.  
  3789. (Table 2492)
  3790. Values asynchronous callback function is called with:
  3791.     AH = opcode
  3792.     AL = path ID generating callback
  3793.     DH = target ID causing event
  3794.     DL = LUN causing event
  3795.     CX = data byte count (if applicable)
  3796.     ES:BX -> data buffer (if applicable)
  3797. Return: all registers preserved
  3798. --------d-4F8200CX8765-----------------------
  3799. INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK
  3800.     AX = 8200h
  3801.     CX = 8765h
  3802.     DX = CBA9h
  3803. Return: AH = 00h if installed
  3804.         CX = 9ABCh
  3805.         DX = 5678h
  3806.         ES:DI -> "SCSI_CAM"
  3807. SeeAlso: AX=8100h,INT 4B"Common Access Method"
  3808. --------N-50---------------------------------
  3809. INT 50 - TIL Xpert AIM (X.25)
  3810.     AH = function
  3811. --------H-50---------------------------------
  3812. INT 50 - IRQ0 relocated by DESQview
  3813. Range:    INT 50 to INT F8, selected automatically
  3814. Notes:    this is the default location for older versions; DESQview v2.26+
  3815.       searches for unused ranges of interrupts and uses the lowest
  3816.       available range in its list for relocating these IRQs and the next
  3817.       lowest for relocating IRQ8-IRQ15
  3818.     a range of eight interrupts starting at a multiple of 8 is considered
  3819.       available if all vectors are identical and it has not been excluded
  3820.       with an /XB:nn commandline switch
  3821.     the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these
  3822.       are available, F8h and then 50h are used anyway)
  3823.     the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these
  3824.       are available, F8h and then F0h are used anyway)
  3825. SeeAlso: INT 08"IRQ0",INT 51"DESQview",INT 54"DESQview",INT 58"DESQview"
  3826. SeeAlso: INT D8"Screen Thief"
  3827. --------H-50---------------------------------
  3828. INT 50 - IRQ0 relocated by IBM 3278 emulation control program
  3829. SeeAlso: INT 51"IBM 3278"
  3830. --------H-50---------------------------------
  3831. INT 50 - IRQ0 relocated by OS/2 v1.x
  3832. SeeAlso: INT 51"OS/2"
  3833. ----------50---------------------------------
  3834. INT 50 - TI Professional PC - FATAL SOFTWARE ERROR TRAP
  3835. Desc:    the default handler generates a System Error message and halts the
  3836.       computer such that only Ctrl-Alt-Del can restart operation
  3837. Note:    documented as "for system use only"; intended for multi-tasking
  3838.       software
  3839. SeeAlso: INT 40"TI Professional",INT 4F"TI Professional"
  3840. SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
  3841. --------V-500000-----------------------------
  3842. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW
  3843.     AX = 0000h
  3844.     ES:BX -> name string or ES:0000h if none
  3845.     CH,CL = row,column of upper left corner
  3846.     DH,DL = row,column of lower right corner
  3847. Return: AX = window handle or
  3848.         0000h if not installed
  3849.         FFFFh on error
  3850. SeeAlso: AX=0001h,AX=0002h"TEXT WINDOWS"
  3851. --------V-500001-----------------------------
  3852. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW
  3853.     AX = 0001h
  3854.     DI = window handle
  3855. SeeAlso: AX=0000h
  3856. --------V-500002-----------------------------
  3857. INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
  3858.     AX = 0002h
  3859.     BL = character
  3860.     BH = attribute
  3861.     DL = column
  3862.     DH = row
  3863.     DI = window handle
  3864. Return: AX = status
  3865.         0000h if successful
  3866.         FFFFh if outside window
  3867. SeeAlso: AX=0000h
  3868. --------l-500002-----------------------------
  3869. INT 50 - PC Thuis Organizer Shell - PLOT TEXT
  3870.     AX = 0002h
  3871.     ES:BX -> text string
  3872.     DH,DL = row,column of upper left corner
  3873.     DI = window handle
  3874. Return: AX = status
  3875.         0000h successful (text fits in window)
  3876.         FFFFh error
  3877. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  3878.       published in the June/July 1990 issue of PC Thuis Power magazine
  3879. --------V-500003-----------------------------
  3880. INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
  3881.     AX = 0003h
  3882.     ES:BX -> text string
  3883.     CX = string length (0000h if ASCIZ string)
  3884.     DL = position (FFh centered, else flush left)
  3885.     DH = starting row
  3886.     DI = window handle
  3887. Return: AX = status
  3888.         0000h successful
  3889.         FFFFh did not fit in window
  3890. --------l-500003-----------------------------
  3891. INT 50 - PC Thuis Organizer Shell - WRITE FILE
  3892.     AX = 0003h
  3893.     ES:BX -> data to be written
  3894.     CX = number of bytes to write
  3895.     DS:SI -> filename
  3896. Return: AX = status
  3897.         0000h successful
  3898.         FFFFh error
  3899. SeeAlso: AX=0004h"Shell"
  3900. --------V-500004-----------------------------
  3901. INT 50 - Vanderaart TEXT WINDOWS - GET KEY
  3902.     AX = 0004h
  3903.     CH = type
  3904.         00h any key
  3905.         01h 'J' or 'N' (Dutch for yes/no)
  3906. Return: AX = key
  3907. SeeAlso: INT 16/AH=00h
  3908. --------l-500004-----------------------------
  3909. INT 50 - PC Thuis Organizer Shell - READ FILE
  3910.     AX = 0004h
  3911.     ES:BX -> buffer for data
  3912.     CX = number of bytes to read or 0000h for entire file
  3913.     DL = file type
  3914.         01h setting shell
  3915.         02h setting sterm
  3916.         03h INT21 file
  3917.     DS:SI -> filename
  3918. Return: AX = status
  3919.         0000h successful
  3920.         FFFFh error
  3921. Note:    file type numbers are maintained by John Vanderaart; if a new file type
  3922.       is needed, a type number should be requested from him through the
  3923.       magazine:
  3924.         PC Thuis BV
  3925.         Spaarne 55
  3926.         2011 CE HAARLEM
  3927.         The Netherlands
  3928. SeeAlso: AX=0003h"Shell"
  3929. --------V-500005-----------------------------
  3930. INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
  3931.     AX = 0005h
  3932.     BL = new attribute
  3933.     CH,CL = row,column of upper left corner
  3934.     DH,DL = row,column of lower right corner
  3935.     DI = window handle
  3936. --------l-500005-----------------------------
  3937. INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO
  3938.     AX = 0005h
  3939.     ES:BX -> prompt string (ES:0000h if no prompt)
  3940. Return: AX = key pressed
  3941.         0000h "J" (Dutch "Ja" = "Yes")
  3942.         FFFFh "N" (Dutch "Nee" = "No")
  3943. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  3944.       published in the June/July 1990 issue of PC Thuis Power magazine
  3945. SeeAlso: AX=0008h"PC Thuis"
  3946. --------V-500006-----------------------------
  3947. INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
  3948.     AX = 0006h
  3949.     ES:BX -> text string
  3950.     CH = type of input (see #2493)
  3951.     DH,DL = row,column of upper left corner
  3952.     DI = window handle
  3953. Return: AX = key which terminated entry
  3954.         0000h Enter
  3955.         0001h Esc
  3956.         0002h Down arrow
  3957.         0003h Up arrow
  3958.         0004h F10
  3959.  
  3960. (Table 2493)
  3961. Values for type of input to Vanderaart Text Windows:
  3962.  00h    everything
  3963.  01h    uppercase only
  3964.  02h    positive numbers
  3965.  03h    Dutch postal code ("9999 AA")
  3966.  04h    'J' or 'N' (Dutch yes/no)
  3967.  05h    telephone or FAX number
  3968.  06h    positive or negative number
  3969.  07h    date (dd/mm/yy)
  3970.  08h    money
  3971.  09h    '1' through '8'
  3972.  0Ah    '1' through '4'
  3973.  0Bh    uppercase filenames
  3974. --------l-500006-----------------------------
  3975. INT 50 - PC Thuis Organizer Shell - ALERT USER
  3976.     AX = 0006h
  3977.     ES:BX -> string
  3978. --------l-500007-----------------------------
  3979. INT 50 - PC Thuis Organizer Shell - DO LINE
  3980.     AX = 0007h
  3981.     ES:BX -> text string
  3982.     CX = string length in bytes (0000h if NUL-terminated)
  3983.     DL = FFh to center string, else flush left
  3984.     DH = upper left row
  3985.     DI = window handle
  3986. Return: AX = status
  3987.         0000h successful
  3988.         FFFFh error
  3989. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  3990.       published in the June/July 1990 issue of PC Thuis Power magazine
  3991. SeeAlso: AX=0008h
  3992. --------l-500008-----------------------------
  3993. INT 50 - PC Thuis Organizer Shell - DO MENU
  3994.     AX = 0008h
  3995.     ES:BX -> menu structure
  3996. Return: AL = index 1 or FFh if not selected
  3997.     AH = index 2 or FFh if not selected
  3998.     BL = index 3 or FFh if not selected
  3999.     BH = index 4 or FFh if not selected
  4000. SeeAlso: AX=0005h"PC Thuis",AX=0007h,AX=000Ch
  4001. --------l-500009-----------------------------
  4002. INT 50 - PC Thuis Organizer Shell - MESSAGE ON
  4003.     AX = 0009h
  4004.     ES:BX -> message string
  4005. SeeAlso: AX=000Ah
  4006. --------l-50000A-----------------------------
  4007. INT 50 - PC Thuis Organizer Shell - MESSAGE OFF
  4008.     AX = 000Ah
  4009. SeeAlso: AX=0009h
  4010. --------l-50000B-----------------------------
  4011. INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE
  4012.     AX = 000Bh
  4013.     BL = new attribute
  4014.     CH,CL = row,column of upper left corner
  4015.     DH,DL = row,column of lower right corner
  4016.     DI = window handle
  4017. --------l-50000C-----------------------------
  4018. INT 50 - PC Thuis Organizer Shell - DO REQUEST
  4019.     AX = 000Ch
  4020.     ES:BX -> request structure
  4021. Return: AX = status
  4022.         0000h confirmed
  4023.         FFFFh denied
  4024. SeeAlso: AX=0008h
  4025. --------l-50000D-----------------------------
  4026. INT 50 - PC Thuis Organizer Shell - EDIT LINE
  4027.     AX = 000Dh
  4028.     ES:BX -> text string
  4029.     CL = length
  4030.     CH = input type (see #2494)
  4031.     DH,DL = row,column of upper left corner
  4032.     DI = window handle
  4033. Return: AX = result code
  4034. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  4035.       published in the June/July 1990 issue of PC Thuis Power magazine
  4036.  
  4037. Bitfields for input type:
  4038. Bit(s)    Description    (Table 2494)
  4039.  0    force uppercase
  4040.  1    integer
  4041.  2    no spaces allowed
  4042.  3    no cursor keys
  4043. --------l-50000E-----------------------------
  4044. INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER
  4045.     AX = 000Eh
  4046.     BL = character
  4047.     BH = attribute
  4048.     DH,DL = row,column at which to plot
  4049.     DI = window handle
  4050. Return: AX = status
  4051.         0000h successful
  4052.         FFFFh errror
  4053. --------l-50000F-----------------------------
  4054. INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW
  4055.     AX = 000Fh
  4056.     BL = character
  4057.     BH = attribute
  4058.     DI = window handle
  4059. --------l-500010-----------------------------
  4060. INT 50 - PC Thuis Organizer Shell - TRACE MENU
  4061.     AX = 0010h
  4062.     ES:BX -> first menu structure
  4063.     CL = hotkey to look up
  4064. Return: AL = index 1 or FFh if not selected
  4065.     AH = index 2 or FFh if not selected
  4066.     BL = index 3 or FFh if not selected
  4067.     BH = index 4 or FFh if not selected
  4068. Index:    hotkeys;PC Thuis Organizer Shell
  4069. --------l-500011-----------------------------
  4070. INT 50 - PC Thuis Organizer Shell - MOVE MEMORY
  4071.     AX = 0011h
  4072.     DS:SI -> source
  4073.     ES:DI -> destination
  4074.     CX = number of bytes to move (0000h = until NUL string terminator???)
  4075. SeeAlso: AX=0012h
  4076. --------l-500012-----------------------------
  4077. INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY
  4078.     AX = 0012h
  4079.     DS:SI -> source
  4080.     ES:DI -> destination
  4081.     CX = number of bytes to compare (0000h=until NUL string terminator???)
  4082. Return: AX = status
  4083.         0000h same
  4084.         FFFFh different
  4085. SeeAlso: AX=0011h
  4086. --------l-500013-----------------------------
  4087. INT 50 - PC Thuis Organizer Shell - GET KEY
  4088.     AX = 0013h
  4089.     CH = type flags
  4090.         bit 0: force uppercase
  4091.         bit 1: integer
  4092.         bit 2: no spaces
  4093. Return: AX = keystroke
  4094. --------l-500014-----------------------------
  4095. INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW
  4096.     AX = 0014h
  4097.     BL = direction
  4098.         06h up
  4099.         07h down
  4100.     BH = attribute
  4101.     DI = window handle
  4102. SeeAlso: INT 10/AH=06h,INT 10/AH=07h
  4103. --------l-500015-----------------------------
  4104. INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE
  4105.     AX = 0015h
  4106.     BL = handle size
  4107.         00h 65536 bytes (64K)
  4108.         01h 65535 bytes (64K-1)
  4109.         02h 32768 bytes (32K)
  4110.         03h 32767 bytes (32K-1)
  4111. Return: AX = segment
  4112. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  4113.       published in the June/July 1990 issue of PC Thuis Power magazine
  4114. SeeAlso: INT 21/AH=48h
  4115. --------H-51---------------------------------
  4116. INT 51 - IRQ1 relocated by DESQview
  4117. Range:    INT 51 to INT F9, selected automatically
  4118. Note:    this is the default location for older versions; see INT 50"DESQview"
  4119.       for details of interrupt relocation
  4120. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  4121. --------H-51---------------------------------
  4122. INT 51 - IRQ1 relocated by IBM 3278 emulation control program
  4123. SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"
  4124. --------H-51---------------------------------
  4125. INT 51 - IRQ1 relocated by OS/2 v1.x
  4126. SeeAlso: INT 50"OS/2",INT 54"OS/2"
  4127. ----------51---------------------------------
  4128. INT 51 - TI Professional PC - RESTART TIMING EVENT
  4129.     AX = timer count in 25ms intervals
  4130.     DS:DI -> timing-event table (see #2495)
  4131. Note:    documented as "for system use only"; intended for multi-tasking
  4132.       software
  4133. SeeAlso: INT 50"TI Professional",INT 52"TI Professional"
  4134.  
  4135. Format of TI Professional PC timing event table:
  4136. Offset    Size    Description    (Table 2495)
  4137.  00h    WORD    offset of next event table entry
  4138.  02h    BYTE    normally unused (FFh)
  4139.  03h    BYTE    flags:
  4140.         bit 7 set if timing event active
  4141.         bits 6-0 not used by BIOS (0), but could be used by option ROMs
  4142.  04h    WORD    timeout count (decremented every 25ms when active)
  4143.  06h    WORD    offset of event handler (in segment F400h) to call on event
  4144.           timeout; the F400h segment allows addressing both system ROMs
  4145.           and the first 16K of memory (due to the 1M memory wraparound)
  4146. --------b-51---------------------------------
  4147. INT 51 - Tandy 2000 - KEYBOARD SERVICES
  4148. Note:    this interrupt is identical to INT 16 on Tandy 2000
  4149. SeeAlso: INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h,INT 16/AH=04h"Tandy"
  4150. SeeAlso: INT 16/AH=04h,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 52"Tandy 2000"
  4151. --------H-52---------------------------------
  4152. INT 52 - IRQ2 relocated by DESQview
  4153. Range:    INT 52 to INT FA, selected automatically
  4154. Note:    this is the default location for older versions; see INT 50"DESQview"
  4155.       for details of interrupt relocation
  4156. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  4157. --------H-52---------------------------------
  4158. INT 52 - IRQ2 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4159. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  4160. ----------52---------------------------------
  4161. INT 52 - TI Professional PC - CANCEL TIMING EVENT
  4162.     DS:DI -> timing-event table (see #2495)
  4163. Note:    documented as "for system use only"; intended for multi-tasking
  4164.       software
  4165. SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
  4166. --------b-52---------------------------------
  4167. INT 52 - Tandy 2000 - VIDEO SERVICES
  4168. Note:    this interrupt is identical to INT 10
  4169. SeeAlso: INT 10/AH=00h,INT 10/AH=01h,INT 10/AH=08h,INT 10/AH=0Eh
  4170. SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 53"Tandy 2000"
  4171. --------H-53---------------------------------
  4172. INT 53 - IRQ3 relocated by DESQview
  4173. Range:    INT 53 to INT FB, selected automatically
  4174. Note:    this is the default location for older versions; see INT 50"DESQview"
  4175.       for details of interrupt relocation
  4176. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  4177. --------H-53---------------------------------
  4178. INT 53 - IRQ3 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4179. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  4180. ----------53---------------------------------
  4181. INT 53 - TI Professional PC - SVC INTERFACE
  4182. Notes:    documented as "for system use only"; intended for multi-tasking
  4183.       software
  4184.     this interrupt is not used by the BIOS; the default handler generates
  4185.       a system error trap (see INT 51"TI Professional")
  4186. SeeAlso: INT 50"TI Professional",INT 54"TI Professional"
  4187. --------b-53---------------------------------
  4188. INT 53 - Tandy 2000 - SERIAL COMMUNICATIONS
  4189. Note:    this interrupt is identical to INT 14 on Tandy 2000
  4190. SeeAlso: INT 14/AH=00h"SERIAL",INT 14/AH=01h,INT 14/AH=02h,INT 14/AH=03h
  4191. SeeAlso: INT 14/AH=04h"Tandy 2000",INT 52"Tandy 2000",INT 54"Tandy 2000"
  4192. --------N-53---------------------------------
  4193. INT 53 - WEB??? - API
  4194.     BX = function
  4195.         0000h ???
  4196.         AX = ???
  4197.         Return: AX = ???
  4198.         0004h ???
  4199.         0009h ???
  4200.         0015h
  4201.         AX = ???
  4202.         DX = ???
  4203.         0017h
  4204. Return: ???
  4205. Notes:    the installation check consists of looking for the signature "WEBCO"
  4206.       immediately prior to the interrupt handler
  4207.     the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)
  4208. Index:    installation check;unknown|installation check;WEBCO
  4209. --------H-54---------------------------------
  4210. INT 54 - IRQ4 relocated by DESQview
  4211. Range:    INT 54 to INT FC, selected automatically
  4212. Note:    this is the default location for older versions; see INT 50"DESQview"
  4213.       for details of interrupt relocation
  4214. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  4215. --------H-54---------------------------------
  4216. INT 54 - IRQ4 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4217. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  4218. ----------54---------------------------------
  4219. INT 54 - TI Professional PC - ACTIVATE TASK SUBROUTINE
  4220. Notes:    documented as "for system use only"; intended for multi-tasking
  4221.       software
  4222.     this interrupt is not used by the BIOS; the default handler generates
  4223.       a system error trap (see INT 51"TI Professional")
  4224. SeeAlso: INT 50"TI Professional",INT 53"TI Professional"
  4225. --------b-54---------------------------------
  4226. INT 54 - Tandy 2000 - LINE PRINTER
  4227. Note:    this interrupt is identical to INT 17 on Tandy 2000
  4228. SeeAlso: INT 17/AH=00h,INT 17/AH=01h,INT 17/AH=02h,INT 4A"Tandy 2000"
  4229. SeeAlso: INT 53"Tandy 2000",INT 55"Tandy 2000"
  4230. --------X-545400-----------------------------
  4231. INT 54 U - Toshiba PCMCIA2 - INSTALLATION CHECK
  4232.     AX = 5400h
  4233. Return: AX = 0054h if installed
  4234.         CX:DX -> INT function handler
  4235. --------H-55---------------------------------
  4236. INT 55 - IRQ5 relocated by DESQview
  4237. Range:    INT 55 to INT FD, selected automatically
  4238. Note:    this is the default location for older versions; see INT 50"DESQview"
  4239.       for details of interrupt relocation
  4240. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  4241. --------H-55---------------------------------
  4242. INT 55 - IRQ5 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4243. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  4244. --------b-55---------------------------------
  4245. INT 55 - TI Professional PC - RESERVED FOR FUTURE USE
  4246. Notes:    documented as "for system use only"; intended for multi-tasking
  4247.       software
  4248.     this interrupt is not used by the BIOS; the default handler generates
  4249.       a system error trap (see INT 51"TI Professional")
  4250. SeeAlso: INT 50"TI Professional",INT 56"TI Professional"
  4251. --------b-55---------------------------------
  4252. INT 55 - Tandy 2000 - SYSTEM CLOCK
  4253. Note:    this interrupt is identical to INT 1A on Tandy 2000
  4254. SeeAlso: INT 1A/AH=00h,INT 1A/AH=01h,INT 1A/AH=02h"Tandy 2000"
  4255. SeeAlso: INT 1A/AH=03h"Tandy 2000",INT 54"Tandy 2000",INT 56"Tandy 2000"
  4256. --------H-56---------------------------------
  4257. INT 56 - IRQ6 relocated by DESQview
  4258. Range:    INT 56 to INT FE, selected automatically
  4259. Note:    this is the default location for older versions; see INT 50"DESQview"
  4260.       for details of interrupt relocation
  4261. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  4262. --------H-56---------------------------------
  4263. INT 56 - IRQ6 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4264. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  4265. --------b-56---------------------------------
  4266. INT 56 - TI Professional PC - RESERVED FOR FUTURE USE
  4267. Notes:    documented as "for system use only"; intended for multi-tasking
  4268.       software
  4269.     this interrupt is not used by the BIOS; the default handler generates
  4270.       a system error trap (see INT 51"TI Professional")
  4271. SeeAlso: INT 50"TI Professional",INT 55"TI Professional"
  4272. --------b-56---------------------------------
  4273. INT 56 - Tandy 2000 - FLOPPY DISK SERVICES
  4274. Note:    this interrupt is identical to INT 13 on Tandy 2000
  4275. SeeAlso: INT 13/AH=00h,INT 13/AH=01h,INT 13/AH=02h,INT 13/AH=03h
  4276. SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 55"Tandy 2000"
  4277. --------H-57---------------------------------
  4278. INT 57 - IRQ7 relocated by DESQview
  4279. Range:    INT 57 to INT FF, selected automatically
  4280. Note:    this is the default location for older versions; see INT 50"DESQview"
  4281.       for details of interrupt relocation
  4282. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  4283. --------H-57---------------------------------
  4284. INT 57 - IRQ7 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4285. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  4286. --------b-57---------------------------------
  4287. INT 57 C - TI Professional PC - CRT MAPPING HOOK
  4288.     AX/BX/CX/DX/BP/SI/DI same as on entry to CRT subroutine (e.g. INT 49)
  4289.     DS = BIOS system segment
  4290.     ES = DE00h
  4291. Return: DF/IF flags must be preserved
  4292.     ES,DS,BP preserved
  4293.     AX,BX,CX,DX,SI,DI may be changed as necessary to modify the original
  4294.       call
  4295. Desc:    hooking this vector permits programs to intercept or modify all
  4296.       screen output, including both application calls to INT 49 and
  4297.       calls generated internally by the BIOS which bypass INT 49
  4298. Note:    by default, this vector points at an IRET instruction
  4299. SeeAlso: INT 49/AH=01h"TI",INT 50"TI Professional"
  4300. --------H-58---------------------------------
  4301. INT 58 - IRQ8 relocated by DESQview 2.26+
  4302. Range:    INT 58 to INT F8, selected automatically
  4303. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4304. SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 70
  4305. --------H-58---------------------------------
  4306. INT 58 - IRQ0 relocated by DoubleDOS
  4307. SeeAlso: INT 08
  4308. --------b-58---------------------------------
  4309. INT 58 C - TI Professional PC - SYSTEM TIMER 25ms HOOK
  4310. Desc:    called from the hardware timer tick interrupt, after executing the
  4311.       first four BIOS timing events, updating the system clock, invoking
  4312.       INT 5A if required, saving registers, and switching to a temporary
  4313.       stack (the one reserved for IRQ3)
  4314. Notes:    the handler for this interrupt may destroy AX,BX,DI,ES but must
  4315.       preserve all other registers; 8 WORDs of stack space are available,
  4316.       of which at most 4 may be used if the handler enables interrupts
  4317.     if the handler switches stacks (because more than 4/8 WORDs are
  4318.       required), the original stack must be restored before chaining to
  4319.       the previous handler
  4320. SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
  4321. SeeAlso: INT 5A"TI Professional"
  4322. --------H-59---------------------------------
  4323. INT 59 - IRQ9 relocated by DESQview 2.26+
  4324. Range:    INT 59 to INT F9, selected automatically
  4325. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4326. SeeAlso: INT 50"DESQview",INT 58"DESQview",INT 5A"DESQview",INT 71
  4327. --------H-59---------------------------------
  4328. INT 59 - IRQ1 relocated by DoubleDOS
  4329. SeeAlso: INT 09
  4330. --------b-59---------------------------------
  4331. INT 59 - TI Professional PC - COMMON ROM HARDWARE INTERRUPT EXIT VECTOR
  4332. Desc:    all hardware interrupts on the TI Pro jump indirectly to the handler
  4333.       pointed at by this interrupt vector to finish their handling of
  4334.       the hardware interrupt
  4335. Notes:    the default handler decrements the interrupt count, restores registers
  4336.       (including the stack pointer), sends an EOI to the interrupt
  4337.       controller, and finally does an IRET
  4338.     can be used by multitaskers which need to get control after every
  4339.       hardware interrupt
  4340. SeeAlso: INT 40"TI Professional",INT 47"TI Professional"
  4341. SeeAlso: INT 53"TI Professional"
  4342. --------V-59---------------------------------
  4343. INT 59 - GSS Computer Graphics Interface (GSS*CGI)
  4344.     DS:DX -> block of 5 array pointers
  4345. Return: CF set on error
  4346.         AX = error code
  4347.     CF clear if successful
  4348.         AX = return code
  4349. Note:    INT 59 is the means by which GSS*CGI language bindings communicate with
  4350.       GSS*CGI device drivers and the GSS*CGI device driver controller.
  4351.     also used by the IBM Graphic Development Toolkit
  4352. --------H-5A---------------------------------
  4353. INT 5A - IRQ10 relocated by DESQview 2.26+
  4354. Range:    INT 5A to INT FA, selected automatically
  4355. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4356. SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 5B"DESQview",INT 72
  4357. --------H-5A---------------------------------
  4358. INT 5A - IRQ2 relocated by DoubleDOS
  4359. SeeAlso: INT 0A"IRQ2"
  4360. --------N-5A---------------------------------
  4361. INT 5A - PC Cluster adapter BIOS entry address
  4362.     ???
  4363. Return: ???
  4364. SeeAlso: INT 5B"PC Cluster"
  4365. --------b-5A---------------------------------
  4366. INT 5A - TI Professional PC - SYSTEM TIMER 100ms HOOK
  4367. Desc:    called from the hardware timer tick interrupt, after executing the
  4368.       first four BIOS timing events, updating the system clock, saving
  4369.       registers, and switching to a temporary stack (the one reserved
  4370.       for IRQ3), but before calling INT 58
  4371.     no details available
  4372. Notes:    this interrupt is invoked on every fourth timer interrupt
  4373.     the handler for this interrupt may destroy AX,BX,DI,ES but must
  4374.       preserve all other registers; 8 WORDs of stack space are available,
  4375.       of which at most 4 may be used if the handler enables interrupts
  4376.     if the handler switches stacks (because more than 4/8 WORDs are
  4377.       required), the original stack must be restored before chaining to
  4378.       the previous handler
  4379. SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
  4380. SeeAlso: INT 58"TI Professional"
  4381. --------H-5B---------------------------------
  4382. INT 5B - IRQ11 relocated by DESQview 2.26+
  4383. Range:    INT 5B to INT FB, selected automatically
  4384. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4385. SeeAlso: INT 50"DESQview",INT 5A"DESQview",INT 5C"DESQview",INT 73
  4386. --------H-5B---------------------------------
  4387. INT 5B - IRQ3 relocated by DoubleDOS
  4388. SeeAlso: INT 0B
  4389. --------N-5B---------------------------------
  4390. INT 5B - PC cluster adapter - RELOCATED INT 19
  4391. SeeAlso: INT 19,INT 5A"PC Cluster"
  4392. --------N-5B---------------------------------
  4393. INT 5B - AT&T Starlan Extended NetBIOS (variable length names)
  4394.     ES:BX -> Network Control Block (see #2496)
  4395. Return: AL = status (see #2499)
  4396. SeeAlso: INT 5C"NetBIOS"
  4397.  
  4398. Format of Starlan Network Control Block:
  4399. Offset    Size    Description    (Table 2496)
  4400.  00h    BYTE    ncb_command (see also #2501)
  4401.         70h send net Break
  4402.  01h    BYTE    ncb_retcode
  4403.  02h    BYTE    ncb_lsn
  4404.  03h    BYTE    ncb_num
  4405.  04h    DWORD    -> ncb_buffer
  4406.  08h    WORD    ncb_length
  4407.  0Ah 16 BYTEs    ncb_callname
  4408.  1Ah 16 BYTEs    ncb_name
  4409.  2Ah    BYTE    ncb_rto
  4410.  2Bh    BYTE    ncb_sto
  4411.  2Ch    DWORD    -> ncb_post    /* int (far *ncb_post)(); */
  4412.  30h    BYTE    ncb_lana_num
  4413.  31h    BYTE    ncb_cmd_cplt
  4414.  32h    DWORD    -> ncb_vname
  4415.  36h    BYTE    ncb_vnamelen
  4416.  37h  9 BYTEs    ncb_reserve
  4417. Note:    fields 00h-31h are the same as for a standard NetBIOS NCB (see #2500)
  4418. --------N-5B---------------------------------
  4419. INT 5B - Microsoft Network Transport Layer Interface
  4420. Note:    used by MS-NET for executing network commands
  4421. SeeAlso: INT 5C"NetBIOS"
  4422. --------N-5B---------------------------------
  4423. INT 5B - used by Alloy NTNX
  4424. --------N-5B---------------------------------
  4425. INT 5B - ISOLAN Multi Protocol Software
  4426.     ES:BX -> Transfer Control Block (see #2497)
  4427. Return: AL = status
  4428. Note:    this software interface allows multiple protocols/software packages
  4429.       to access a BICC 411x network card
  4430.  
  4431. Format of ISOLAN Transfer Control Block:
  4432. Offset    Type    Description    (Table 2497)
  4433.  00h    BYTE    command code
  4434.         B3h Status
  4435.         F2h Activate
  4436.         F3h Deactivate
  4437.         F4h Send Data
  4438.  01h    BYTE    command identity
  4439.  02h    BYTE    virtual circuit ID
  4440.  03h    WORD    buffer length
  4441.  05h    DWORD    buffer pointer
  4442.  09h    BYTE    expedited data flag
  4443.  0Ah    BYTE    cancelable flag
  4444.  0Bh 16 BYTEs    local network address
  4445.  1Bh 16 BYTEs    remote network address
  4446.  2Bh    DWORD    asynchronous notification routine
  4447.  30h    DWORD    local network number
  4448.  34h    DWORD    remote network number
  4449.  38h    BYTE    call timeout
  4450.  39h    BYTE    not used
  4451.  3Ah  8 BYTEs    reserved
  4452.  42h    BYTE    command code extension
  4453.  43h    WORD    Blue Book MAC type
  4454. --------b-5B---------------------------------
  4455. INT 5B C - TI Professional PC - KEYBOARD MAPPING HOOK
  4456.     CF set
  4457.     AH = shift state (see #2498)
  4458.     AL = scan code (see #2469)
  4459. Return:    BX, CX, DI, ES may be destroyed
  4460.     various return methods are supported:
  4461.         IRET, AX unchanged: process keystroke normally
  4462.         IRET, AL = FFh: discard keystroke
  4463.         IRET, AX changed: process modified keystroke
  4464.         chain to old INT 5B: allow other handlers to look at (possibly
  4465.           modified) keystroke in AX
  4466.         RETF 2, CF clear: place returned AX into keyboard buffer without
  4467.           any further processing
  4468. Notes:    invoked by the keyboard ISR, and used to remap the keyboard
  4469.     if CF is clear on entry, some other handler has processed the
  4470.       keystroke and the current handler should not modify it, instead
  4471.       performing a RETF 2 or IRET (after clearing CF on the stack)
  4472.     when requesting that a value be placed directly into the keyboard
  4473.       buffer, AL and AH may not *both* be nonzero (the TI does not
  4474.       return scan codes as part of the key code for non-extended keys)
  4475. SeeAlso: INT 15/AH=4Fh,INT 4A/AH=00h"TI",INT 59"TI Professional"
  4476. SeeAlso: INT 5C"TI Professional",INT 5D"TI Professional"
  4477. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  4478.  
  4479. Bitfields for TI Professional PC keyboard mapping hook shift states:
  4480. Bit(s)    Description    (Table 2498)
  4481.  7    CAPS LOCK is on
  4482.  6-4    reserved (0)
  4483.  3    repeated key
  4484.  2    Shift is pressed
  4485.  1    Alt is pressed
  4486.  0    Ctrl is pressed
  4487. --------U-5B5254DL04-------------------------
  4488. INT 5B U - SitBack v3.02R - GET ???
  4489.     AX = 5254h
  4490.     DL = 04h
  4491. Return: ES:BX -> ??? in resident portion
  4492. Program: SitBack is a background file backup utility by SitBack Technologies,
  4493.       Inc. which initiates backups whenever the system is idle
  4494. SeeAlso: AX=8485h/DL=71h,AX=8485h/DL=72h
  4495. --------U-5B8485DL70-------------------------
  4496. INT 5B U - SitBack v3.02R - INSTALLATION CHECK
  4497.     AX = 8485h
  4498.     DL = 70h
  4499. Return: CX = 8485h if installed
  4500.         DX:AX -> ??? (configuration data?)
  4501. Program: SitBack is a background file backup utility by SitBack Technologies,
  4502.       Inc. which initiates backups whenever the system is idle
  4503. SeeAlso: AX=5254h/DL=04h,AX=8485h/DL=78h
  4504. --------U-5B8485DL71-------------------------
  4505. INT 5B U - SitBack v3.02R - SET ??? FLAG AND GET ??? ADDRESS
  4506.     AX = 8485h
  4507.     DL = 71h
  4508. Return: ES:BX -> FAR entry point to ???
  4509. Note:    the flag which is modified is located at the address returned by
  4510.        AX=5254h/DL=04h
  4511. SeeAlso: AX=8485h/DL=72h
  4512. --------U-5B8485DL72-------------------------
  4513. INT 5B U - SitBack v3.02R - CLEAR ??? FLAG
  4514.     AX = 8485h
  4515.     DL = 72h
  4516. Note:    the flag which is modified is located at the address returned by
  4517.        AX=5254h/DL=04h
  4518. SeeAlso: AX=8485h/DL=71h
  4519. --------U-5B8485DL73-------------------------
  4520. INT 5B U - SitBack v3.02R - ???
  4521.     AX = 8485h
  4522.     DL = 73h
  4523.     ???
  4524. Return: ???
  4525. --------U-5B8485DL74-------------------------
  4526. INT 5B U - SitBack v3.02R - ???
  4527.     AX = 8485h
  4528.     DL = 74h
  4529.     ???
  4530. Return: ???
  4531. --------U-5B8485DL75-------------------------
  4532. INT 5B U - SitBack v3.02R - ???
  4533.     AX = 8485h
  4534.     DL = 75h
  4535.     CX = ???
  4536. Return: ???
  4537. SeeAlso: AX=8485h/DL=76h
  4538. --------U-5B8485DL76-------------------------
  4539. INT 5B U - SitBack v3.02R - ???
  4540.     AX = 8485h
  4541.     DL = 76h
  4542.     CX = ???
  4543. Return: ???
  4544. Note:    conditionally calls the code for AX=8485h/DL=75h
  4545. SeeAlso: AX=8485h/DL=75h
  4546. --------U-5B8485DL77-------------------------
  4547. INT 5B U - SitBack v3.02R - SET ??? FLAG
  4548.     AX = 8485h
  4549.     DL = 77h
  4550. --------U-5B8485DL78-------------------------
  4551. INT 5B U - SitBack v3.02R - GET RESIDENT DATA SEGMENT
  4552.     AX = 8485h
  4553.     DL = 78h
  4554. Return: CX = 5342h if supported
  4555.         ES = AX = segment of TSR data
  4556. SeeAlso: AX=8485h/DL=70h,AX=8485h/DL=79h
  4557. --------U-5B8485DL79-------------------------
  4558. INT 5B U - SitBack v3.02R - GET DTA
  4559.     AX = 8485h
  4560.     DL = 79h
  4561. Return: CX = 5342h if supported
  4562.         ES:BX -> DTA set by last INT 21/AH=1Ah
  4563. Note:    this function is provided by SBOS.EXE rather than SB.EXE
  4564. SeeAlso: INT 21/AH=1Ah
  4565. --------U-5B8485DL7A-------------------------
  4566. INT 5B U - SitBack v3.02R - TOGGLE ???
  4567.     AX = 8485h
  4568.     DL = 7Ah
  4569. Return: CX = 5342h if supported
  4570.         AL = new value of ??? (00h or 01h)
  4571. --------N-5C---------------------------------
  4572. INT 5C - NetBIOS INTERFACE
  4573.     ES:BX -> network control block (NCB) (see #2500)
  4574. Return: AL = status (see #2499)
  4575. Program: NetBIOS was developed by Sytek, Inc. in 1984 as a high-level
  4576.       programming interface to the IBM PC Network; the first implementation
  4577.       was a ROM BIOS extension on Sytek's PCnet LAN adapter card, but many
  4578.       current networks support NetBIOS as the session layer.
  4579. Note:    The Sytek PCnet card uses DMA 3.
  4580. SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B"Extended NetBIOS"
  4581.  
  4582. (Table 2499)
  4583. Values for NetBIOS status:
  4584.  00h    successful
  4585.  01h    bad buffer size
  4586.  03h    invalid NETBIOS command
  4587.  05h    timeout
  4588.  06h    receive buffer too small
  4589.  07h    No-ACK command failed
  4590.  08h    bad session number
  4591.  09h    LAN card out of memory
  4592.  0Ah    session closed
  4593.  0Bh    command has been cancelled
  4594.  0Dh    name already exists
  4595.  0Eh    local name table full
  4596.  0Fh    name still in use, can't delete
  4597.  11h    local session table full
  4598.  12h    remote PC not listening
  4599.  13h    bad NCB_NUM field
  4600.  14h    no answer to CALL or no such remote
  4601.  15h    name not in local name table
  4602.  16h    duplicate name
  4603.  17h    bad delete
  4604.  18h    abnormal end
  4605.  19h    name error, multiple identical names in use
  4606.  1Ah    bad packet
  4607.  21h    network card busy
  4608.  22h    too many commands queued
  4609.  23h    bad LAN card number
  4610.  24h    command finished while cancelling
  4611.  26h    command can't be cancelled
  4612.  30h    name defined by another process (OS/2)
  4613.  34h    NetBIOS environment not defined, must issue reset (OS/2)
  4614.  35h    required operating system resources exhausted (OS/2)
  4615.  36h    maximum applications exceeded (OS/2)
  4616.  37h    no SAPs available for NetBIOS (OS/2)
  4617.  38h    requested resources not available (OS/2)
  4618.  40h    Lana System Error
  4619.  41h    Lana Remote Hot Carrier
  4620.  42h    Lana Local Hot Carrier
  4621.  43h    Lana No Carrier Detected
  4622.  44h    unusual network condition
  4623.  45h-4Dh hardware error
  4624.  4Eh    token ring is broken
  4625.  4Fh    token ring error
  4626.  50h    adapter malfunction
  4627.  F7h    error in explicit INITIALIZE
  4628.  F8h    error in implicit OPEN
  4629.  F9h    TOKREUI internal error
  4630.  FAh    hardware adapter testing
  4631.  FBh    NetBIOS emulator not found
  4632.  FCh    OPEN or OPEN_SAP failure
  4633.  FDh    unexpected adapter closure
  4634.  FFh    NetBIOS busy (command pending)
  4635.  
  4636. Format of NetBIOS Network Control Block:
  4637. Offset    Size    Description    (Table 2500)
  4638.  00h    BYTE    command code (see #2501)
  4639.  01h    BYTE    return code (see #2499)
  4640.  02h    BYTE    local session number (LSN)
  4641.  03h    BYTE    "ncb_num" datagram table entry from ADD NAME
  4642.  04h    DWORD    -> I/O buffer
  4643.  08h    WORD    length of data in buffer
  4644.  0Ah 16 BYTEs    remote system to call
  4645.  1Ah 16 BYTEs    network name of local machine
  4646.  2Ah    BYTE    receive timeout in 1/2 seconds
  4647.  2Bh    BYTE    send timeout in 1/2 seconds
  4648.  2Ch    DWORD    -> FAR post handler    /* int (far *ncb_post)(); */
  4649.  30h    BYTE    network adapter number on which to execute command
  4650.         00h-03h IBM NetBIOS specs
  4651.         F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
  4652.  31h    BYTE    command completion code (see #2499)
  4653.  32h 14 BYTEs    reserved for network card
  4654.  
  4655. (Table 2501)
  4656. Values for NetBIOS command code field in NCB:
  4657.  10h    start session with NCB_NAME name (call)
  4658.  11h    listen for call
  4659.  12h    end session with NCB_NAME name (hangup)
  4660.  14h    send data via NCB_LSN
  4661.  15h    receive data from a session
  4662.  16h    receive data from any session
  4663.  17h    send multiple data buffers
  4664.  20h    send unACKed message (datagram)
  4665.  21h    receive datagram
  4666.  22h    send broadcast datagram
  4667.  23h    receive broadcast datagram
  4668.  30h    add name to name table
  4669.  31h    delete name from name table
  4670.  32h    reset adapter card and tables
  4671.  33h    get adapter status (see #2502)
  4672.  34h    status of all sessions for name (see #2504)
  4673.  35h    cancel
  4674.  36h    add group name to name table
  4675.  48h    send data and receive data (LAN Manager NETBEUI.DOS)
  4676.  70h    unlink from IBM remote program (no F0h function)
  4677.  71h    send data without ACK
  4678.  72h    send multiple buffers without ACK
  4679.  72h    UngermannBass Register (conflicts with above function)
  4680.  73h    UngermannBass SendNmc
  4681.  74h    UngermannBass Callniu
  4682.  75h    UngermannBass Calladdr
  4683.  76h    UngermannBass Listenaddr
  4684.  77h    UngermannBass SendPkt
  4685.  78h    find name
  4686.  78h    UngermannBass RcvPkt (conflicts with above function)
  4687.  79h    token-ring protocol trace
  4688.  79h    UngermannBass SendAttn (conflicts with above function)
  4689.  7Ah    UngermannBass RcvAttn
  4690.  7Bh    UngermannBass Listenniu
  4691.  7Ch    UngermannBass RcvRaw
  4692.  7Dh    UngermannBass SendNmc2
  4693.  7Fh    Beame&Whiteside BWNB installation check (returns with return code and
  4694.       completion code both set to 03h, while invalid functions return only
  4695.       return code field set to 03h)
  4696. Note:    OR any of the above except 70h with 80h for non-waiting call
  4697.  
  4698. Format of NetBIOS structure "astatus":
  4699. Offset    Size    Description    (Table 2502)
  4700.  00h  6 BYTEs as_id
  4701.  06h    BYTE  as_jumpers
  4702.  07h    BYTE  as_post
  4703.  08h    BYTE  as_major
  4704.  09h    BYTE  as_minor
  4705.  0Ah    WORD  as_interval
  4706.  0Ch    WORD  as_crcerr
  4707.  0Eh    WORD  as_algerr
  4708.  10h    WORD  as_colerr
  4709.  12h    WORD  as_abterr
  4710.  14h    DWORD as_tcount
  4711.  18h    DWORD as_rcount
  4712.  1Ch    WORD  as_retran
  4713.  1Eh    WORD  as_xresrc
  4714.  20h  8 BYTEs as_res0
  4715.  28h    WORD  as_ncbfree
  4716.  2Ah    WORD  as_ncbmax
  4717.  2Ch    WORD  as_ncbx
  4718.  2Eh  4 BYTEs as_res1
  4719.  32h    WORD  as_sespend
  4720.  34h    WORD  as_msp
  4721.  36h    WORD  as_sesmax
  4722.  38h    WORD  as_bufsize
  4723.  3Ah    WORD  as_names
  4724.  3Ch 16 name structures     as_name (see #2503)
  4725.  
  4726. Format of NetBIOS structure "name":
  4727. Offset    Size    Description    (Table 2503)
  4728.  00h 16 BYTEs "nm_name" symbolic name
  4729.  10h    BYTE  "nm_num" number associated with name
  4730.  11h    BYTE  nm_status
  4731.  
  4732. Format of NetBIOS structure "sstatus":
  4733. Offset    Size    Description    (Table 2504)
  4734.  00h    BYTE    number of sessions being reported
  4735.  01h    BYTE    number of sessions with this name
  4736.  02h    BYTE    number of outstanding receive datagrams
  4737.  03h    BYTE    number of outstanding ReceiveAnys
  4738.  04h    var    session structures (see #2505)
  4739.  
  4740. Format of NetBIOS structure "session":
  4741. Offset    Size    Description    (Table 2505)
  4742.  00h    BYTE    local session number
  4743.  01h    BYTE    state
  4744.         01h listen pending
  4745.         02h call pending
  4746.         03h session established
  4747.         04h hangup pending
  4748.         05h hangup done
  4749.         06h session aborted
  4750.  02h 16 BYTEs    local name
  4751.  12h 16 BYTEs    remote name
  4752.  22h    BYTE    number of outstanding receives
  4753.  23h    BYTE    number of outstanding sends/chainsends
  4754. --------H-5C---------------------------------
  4755. INT 5C - IRQ12 relocated by DESQview 2.26+
  4756. Range:    INT 5C to INT FC, selected automatically
  4757. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4758. SeeAlso: INT 50"DESQview",INT 5B"DESQview",INT 5D"DESQview",INT 74
  4759. --------H-5C---------------------------------
  4760. INT 5C - IRQ4 relocated by DoubleDOS
  4761. SeeAlso: INT 0C
  4762. --------N-5C---------------------------------
  4763. INT 5C - TOPS INTERFACE
  4764.     ES:BX -> Network Control Block
  4765. Note:    TOPS card uses DMA 1, 3 or none.
  4766. --------N-5C---------------------------------
  4767. INT 5C - ATALK.SYS - AppleTalk INTERFACE
  4768.     DX:BX -> control block (see #2507)
  4769. Return: none
  4770. Range:    INT 5Ch to INT 70h
  4771. Notes:    the signature 'AppleTalk' appears 16 bytes prior to the interrupt
  4772.       handler; this serves as the installation check
  4773. Index:    installation check;ATALK.SYS|installation check;AppleTalk interface
  4774.  
  4775. (Table 2506)
  4776. Values for ATALK.SYS command code:
  4777.  01h    "AT_INIT"        initialize the driver
  4778.  02h    "AT_KILL"
  4779.  03h    "AT_GETNETINFO" get current network info incl init status
  4780.  04h    "AT_GETCLOCKTICKS"
  4781.  05h    "AT_STARTTIMER"
  4782.  06h    "AT_RESETTIMER"
  4783.  07h    "AT_CANCELTIMER"
  4784.  10h    "LAP_INSTALL"
  4785.  11h    "LAP_REMOVE"
  4786.  12h    "LAP_WRITE"
  4787.  13h    "LAP_READ"
  4788.  14h    "LAP_CANCEL"
  4789.  20h    "DDP_OPENSOCKET"
  4790.  21h    "DDP_CLOSESOCKET"
  4791.  22h    "DDP_WRITE"
  4792.  23h    "DDP_READ"
  4793.  24h    "DDP_CANCEL"
  4794.  30h    "NBP_REGISTER"
  4795.  31h    "NBP_REMOVE"
  4796.  32h    "NBP_LOOKUP"
  4797.  33h    "NBP_CONFIRM"
  4798.  34h    "NBP_CANCEL"
  4799.  35h    "ZIP_GETZONELIST"
  4800.  36h    "ZIP_GETMYZONE"
  4801.  37h    "ZIP_TAKEDOWN"
  4802.  38h    "ZIP_BRINGUP"
  4803.  40h    "ATP_OPENSOCKET"
  4804.  41h    "ATP_CLOSESOCKET"
  4805.  42h    "ATP_SENDREQUEST"
  4806.  43h    "ATP_GETREQUEST"
  4807.  44h    "ATP_SENDRESPONSE"
  4808.  45h    "ATP_ADDRESPONSE"
  4809.  46h    "ATP_CANCELTRANS"
  4810.  47h    "ATP_CANCELRESPONSE"
  4811.  48h    "ATP_CANCELREQUEST"
  4812.  50h    "ASP_GETPARMS"
  4813.  51h    "ASP_CLOSESESSION"
  4814.  52h    "ASP_CANCEL"
  4815.  53h    "ASP_INIT"
  4816.  54h    "ASP_KILL"
  4817.  55h    "ASP_GETSESSION"
  4818.  56h    "ASP_GETREQUEST"
  4819.  57h    "ASP_CMDREPLY"
  4820.  58h    "ASP_WRTCONTINUE"
  4821.  59h    "ASP_WRTREPLY"
  4822.  5Ah    "ASP_CLOSEREPLY"
  4823.  5Bh    "ASP_NEWSTATUS"
  4824.  5Ch    "ASP_ATTENTION"
  4825.  5Dh    "ASP_GETSTATUS"
  4826.  5Eh    "ASP_OPENSESSION"
  4827.  5Fh    "ASP_COMMAND"
  4828.  60h    "ASP_WRITE"
  4829.  61h    "ASP_GETATTENTION"
  4830.  70h    "PAP_OPEN"
  4831.  71h    "PAP_CLOSE"
  4832.  72h    "PAP_READ"
  4833.  73h    "PAP_WRITE"
  4834.  74h    "PAP_STATUS"
  4835.  75h    "PAP_REGNAME"
  4836.  76h    "PAP_REMNAME"
  4837.  77h    "PAP_INIT"
  4838.  78h    "PAP_NEWSTATUS"
  4839.  79h    "PAP_GETNEXTJOB"
  4840.  7Ah    "PAP_KILL"
  4841.  7Bh    "PAP_CANCEL"
  4842.  
  4843. Format of AppleTalk control block:
  4844. Offset    Size    Description    (Table 2507)
  4845.  00h    WORD    command code (see #2506)
  4846.         OR with the following flags
  4847.         8000h start command then return
  4848.         4000h wait for interrupt service to complete
  4849.  02h    WORD    returned status
  4850.         0000h success (already initialized if func 01h)
  4851.  04h    DWORD    pointer to completion function
  4852.  08h    WORD    network number
  4853.  0Ah    BYTE    node ID
  4854. ---if general func (01h,03h), control block continues:
  4855.  0Bh    BYTE    "inf_abridge"
  4856.  0Ch    WORD    "inf_config"
  4857.  0Eh    DWORD    pointer to buffer
  4858.  12h    WORD    buffer size
  4859. ---if DDP function (20h-24h), control block continues:
  4860.  0Bh    BYTE    "ddp_addr_socket"
  4861.  0Ch    BYTE    "ddp_socket"
  4862.  0Dh    BYTE    "ddp_type"
  4863.  0Eh    DWORD    pointer to buffer
  4864.  12h    WORD    buffer size
  4865.  14h    BYTE    "ddp_chksum"
  4866. ---if Name Binding Protocol (30h-34h), control block continues:
  4867.  0Bh    BYTE    "nbp_addr_socket"
  4868.  0Ch    WORD    "nbp_toget"
  4869.  0Eh    DWORD    pointer to buffer (see #2508)
  4870.  12h    WORD    buffer size
  4871.  14h    BYTE    "nbp_interval"
  4872.  15h    BYTE    "nbp_retry"
  4873.  16h    DWORD    "nbp_entptr"
  4874. ---if AppleTalk Transaction Protocol (42h), control block continues:
  4875.  0Bh    BYTE    "atp_addr_socket"
  4876.  0Ch    WORD    "atp_socket"
  4877.  0Eh    DWORD    pointer to buffer
  4878.  12h    WORD    buffer size
  4879.  14h    BYTE    "atp_interval"
  4880.  15h    BYTE    "atp_retry"
  4881.  16h    BYTE    ATP flags
  4882.         bit 5: exactly one transaction
  4883.  17h    BYTE    "atp_seqbit"
  4884.  18h    BYTE    transaction ID
  4885.  19h  4 BYTEs    ATP user bytes
  4886.  1Dh    BYTE    number of BDS buffers
  4887.  1Eh    BYTE    number of BDS responses
  4888.  1Fh    DWORD    pointer to BDS buffers (see #2509)
  4889.  
  4890. Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:
  4891. Offset    Size    Description    (Table 2508)
  4892.  00h    WORD    "tup_address_network"
  4893.  02h    BYTE    "tup_address_notid"
  4894.  03h    BYTE    "tup_address_socket"
  4895.  04h    BYTE    "tup_enum"
  4896.  05h 99 BYTEs    name
  4897.  
  4898. Format of BDS entries:
  4899. Offset    Size    Description    (Table 2509)
  4900.  00h    DWORD    pointer to buffer
  4901.  04h    WORD    size of buffer
  4902.  06h    WORD    BDS data size
  4903.  08h  4 BYTEs    "bds_userbytes"
  4904. --------N-5C---------------------------------
  4905. INT 5C - IBM 802.2 INTERFACE (LLC)
  4906.     ES:BX -> CCB (see #2510)
  4907. Return: none
  4908.  
  4909. Format of IBM 802.2 CCB:
  4910. Offset    Size    Description    (Table 2510)
  4911.  00h    BYTE    adapter
  4912.  01h    BYTE    command code
  4913.  02h    BYTE    return code
  4914.  03h    BYTE    work
  4915.  04h    DWORD    pointer to ???
  4916.  08h    DWORD    pointer to completion function???
  4917.  0Ch    DWORD    pointer to parameters???
  4918. --------N-5C---------------------------------
  4919. INT 5C - $25 LAN - INSTALLATION CHECK
  4920. Notes:    current versions only check whether the vector is 0000h:0000h or not
  4921.     future versions are supposed to have the signature "NET" in the three
  4922.       bytes preceding the INT 5C handler
  4923. --------b-5C---------------------------------
  4924. INT 5C C - TI Professional PC - KEYBOARD PAUSE KEY VECTOR
  4925.     AX = 0100h
  4926.     CF clear
  4927. Return: CF clear
  4928.         AX = keystroke to be placed into keyboard buffer
  4929.     CF set
  4930.         AX ignored
  4931. Desc:    toggle a pause flag which is checked by the CRT Device Service Routine
  4932.       (see INT 49/AH=01h"TI") and causes it to temporarily halt the
  4933.       machine on the next video-related function (until a key is pressed)
  4934. SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional"
  4935. SeeAlso: INT 5B"TI Professional",INT 5D"TI Professional"
  4936. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  4937. --------N-5C04-------------------------------
  4938. INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE
  4939.     AH = 04h
  4940.     AL = COM port (0 = default)
  4941.     CX = wait count in character times (should be at least 100)
  4942. Return: ZF set if link alive
  4943. --------H-5D---------------------------------
  4944. INT 5D - IRQ13 relocated by DESQview 2.26+
  4945. Range:    INT 5D to INT FD, selected automatically
  4946. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4947. SeeAlso: INT 50"DESQview",INT 5C"DESQview",INT 5E"DESQview",INT 75
  4948. --------H-5D---------------------------------
  4949. INT 5D - IRQ5 relocated by DoubleDOS
  4950. SeeAlso: INT 0D"IRQ5",INT 5C"DoubleDOS"
  4951. --------b-5D---------------------------------
  4952. INT 5D C - TI Professional PC - KEYBOARD BREAK KEY VECTOR
  4953.     CF clear
  4954.     AX = 0000h
  4955. Return: CF clear
  4956.         AX = keystroke to place into keyboard buffer
  4957.     CF set
  4958.         AX ignored
  4959. Desc:    invoked by the keyboard ISR when Shift-BrkPause is pressed
  4960. Note:    the default handler is a simple IRET instruction
  4961. SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional"
  4962. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  4963. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  4964. --------H-5E---------------------------------
  4965. INT 5E - IRQ14 relocated by DESQview 2.26+
  4966. Range:    INT 5E to INT FE, selected automatically
  4967. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4968. SeeAlso: INT 50"DESQview",INT 5D"DESQview",INT 5F"DESQview",INT 76
  4969. --------H-5E---------------------------------
  4970. INT 5E - IRQ6 relocated by DoubleDOS
  4971. SeeAlso: INT 0E,INT 5D"DoubleDOS"
  4972. --------b-5E---------------------------------
  4973. INT 5E C - TI Professional PC - KEYBOARD PRINT-SCREEN VECTOR
  4974.     CF set
  4975. Return: CF clear
  4976.         AX = keystroke to be placed into keyboard buffer
  4977.     CF set
  4978.         AX ignored
  4979. Desc:    hook to dump the screen to the printer
  4980. Notes:    hooked by TI MS-DOS, which provides a PRTSCRN character device which
  4981.       can invoke screen prints when a decimal digit (indicating the type
  4982.       of screen dump) is written to it
  4983.     the TI MS-DOS print-screen routine allows selective dumps of text
  4984.       only, graphics only, or text and graphics superimposed, in either
  4985.       normal or reverse, by pressing the appropriate keystroke combination:
  4986.       Shift-Print, Ctrl-Print, Alt-Print, Shift-Alt-Print, Ctrl-Alt-Print,
  4987.       or Shift-Ctrl-Print.
  4988.     the BIOS default routine for this vector is an IRET
  4989. SeeAlso: INT 05"PRINT SCREEN",INT 4A/AH=00h"TI",INT 59"TI Professional"
  4990. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  4991. SeeAlso: INT 5D"TI Professional",INT 5F"TI Professional"
  4992. --------H-5F---------------------------------
  4993. INT 5F - IRQ15 relocated by DESQview 2.26+
  4994. Range:    INT 5F to INT FF, selected automatically
  4995. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4996. SeeAlso: INT 50"DESQview",INT 5E"DESQview",INT 77
  4997. --------H-5F---------------------------------
  4998. INT 5F - IRQ7 relocated by DoubleDOS
  4999. SeeAlso: INT 0F,INT 5E"DoubleDOS"
  5000. --------b-5F---------------------------------
  5001. INT 5F C - TI Professional PC - KEYBOARD QUEUEING VECTOR
  5002. Return: all registers preserved
  5003. Desc:    hook for multitaskers to be informed when a keypress is placed in the
  5004.       keyboard buffer
  5005. Note:    the default handler is a simple IRET instruction
  5006. SeeAlso: INT 09,INT 4A/AH=00h"TI",INT 59"TI Professional"
  5007. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  5008. SeeAlso: INT 5D"TI Professional",INT 5E"TI Professional"
  5009. --------b-5F00-------------------------------
  5010. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET VIDEO MODE
  5011.     AH = 00h
  5012.     AL = video mode
  5013.         03h text,CGA color (100LX/200LX)
  5014.         06h 640x200 CGA graphics (100LX/200LX)
  5015.         07h text, system manager compliant
  5016.         20h 240x128 mono graphics, system manager compliant
  5017.         87h text, not system manager compliant
  5018.         A0h 240x128 mono graphics, not system manager compliant
  5019. Notes:    the defaults after setting the mode to graphics are (0,0) logical
  5020.       origin, full-screen clip region, (0,0) pen location, pen color 1,
  5021.       pixel replacement FORCE, line type and fill mask all bits set
  5022.     modes 03h and 06h can also be set with the standard INT 10/AH=00h
  5023. SeeAlso: INT 0F"HP 95LX",INT 10/AH=00h,INT 15/AX=4DD4h
  5024. --------b-5F01-------------------------------
  5025. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET FILL MASK
  5026.     AH = 01h
  5027.     ES:DI -> 8-byte fill mask
  5028. Note:    the fill mask represents an 8x8 pixel box and is repeated as necessary
  5029.       when drawing filled rectangles; it is always aligned with the byte
  5030.       boundaries of video memory, regardless of the actual boundaries of
  5031.       the rectangle
  5032. SeeAlso: AH=02h
  5033. --------b-5F02-------------------------------
  5034. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFO
  5035.     AH = 02h
  5036.     ES:DI -> graphics info record (see #2511)
  5037. Return: DX:AX -> filled graphics info record (for return to high-level langs)
  5038.  
  5039. Format of HP 95LX graphics info record:
  5040. Offset    Size    Description    (Table 2511)
  5041.  00h    BYTE    current video mode
  5042.  01h    BYTE    default video mode
  5043.  02h    WORD    display width in pixels
  5044.  04h    WORD    display height in pixels
  5045.  06h    WORD    current pen column
  5046.  08h    WORD    current pen row
  5047.  0Ah    WORD    current line type
  5048.  0Ch    WORD    current replacement rule
  5049.  0Eh    WORD    current pen color
  5050.  10h    WORD    current leftmost column of clip region
  5051.  12h    WORD    current rightmost column of clip region
  5052.  14h    WORD    current topmost row of clip region
  5053.  16h    WORD    current bottommost row of clip region
  5054.  18h    WORD    current column of logical origin
  5055.  1Ah    WORD    current row of logical origin
  5056.  1Ch  8 BYTEs    current fill mask
  5057. --------b-5F03-------------------------------
  5058. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN
  5059.     AH = 03h
  5060.     CX = column
  5061.     DX = row
  5062. SeeAlso: AH=04h
  5063. --------b-5F04-------------------------------
  5064. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET CLIP REGION
  5065.     AH = 04h
  5066.     CX = left-most column
  5067.     DX = top-most row
  5068.     SI = right-most column
  5069.     DI = bottom-most row
  5070. SeeAlso: AH=03h
  5071. --------b-5F05-------------------------------
  5072. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW RECTANGLE
  5073.     AH = 05h
  5074.     AL = fill type
  5075.         00h outline, using current line type and color
  5076.         01h solid, using current color
  5077.         02h pattern, using current fill mask and color
  5078.     DX,CX = row,column of other corner of rectangle
  5079. Note:    the rectangle is drawn starting at the current pen position
  5080. SeeAlso: AH=01h,AH=06h,AH=07h
  5081. --------b-5F06-------------------------------
  5082. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW LINE
  5083.     AH = 06h
  5084.     DX,CX = row,column of end point
  5085. Note:    the line is drawn starting at the current pen position
  5086. SeeAlso: AH=05h,AH=07h
  5087. --------b-5F07-------------------------------
  5088. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PLOT POINT
  5089.     AH = 07h
  5090.     DX,CX = row,column of point
  5091. Note:    also sets pen position to the specified point
  5092. SeeAlso: AH=06h,AH=08h,AH=0Ch
  5093. --------b-5F08-------------------------------
  5094. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - MOVE PEN
  5095.     AH = 08h
  5096.     DX,CX = row,column of new pen position
  5097. SeeAlso: AH=07h,AH=09h
  5098. --------b-5F09-------------------------------
  5099. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET PEN COLOR
  5100.     AH = 09h
  5101.     AL = new color (00h = white, 01h = black)
  5102. SeeAlso: AH=08h,AH=0Ah,AH=0Bh
  5103. --------b-5F0A-------------------------------
  5104. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
  5105.     AH = 0Ah
  5106.     AL = new replacement rule
  5107.         00h force
  5108.         01h AND
  5109.         02h OR
  5110.         03h XOR
  5111.         ---100LX/200LX---
  5112.         04h InvForce
  5113.         05h InvAND
  5114.         06h    InvOR
  5115.         07h InvXOR
  5116.         08h Txt
  5117. SeeAlso: AH=01h,AH=09h,AH=0Bh
  5118. --------b-5F0B-------------------------------
  5119. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LINE TYPE
  5120.     AH = 0Bh
  5121.     CX = new line type
  5122. Note:    the line type specifies 16 bits which are repeated over and over while
  5123.       drawing the pixels of a line
  5124. SeeAlso: AH=09h,AH=0Ah
  5125. --------b-5F0C-------------------------------
  5126. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET PIXEL
  5127.     AH = 0Ch
  5128.     DX,CX = row,column of pixel to read
  5129. Return: AX = pixel color
  5130. SeeAlso: AH=07h
  5131. --------b-5F0D-------------------------------
  5132. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET IMAGE
  5133.     AH = 0Dh
  5134.     DX,CX = row,column of first corner
  5135.     BP,SI = row,column of second corner
  5136.     ES:DI -> image buffer (see #2512)
  5137. Note:    the specified corners are included in the saved image
  5138. SeeAlso: AH=0Eh
  5139.  
  5140. Format of HP 95LX image buffer:
  5141. Offset    Size    Description    (Table 2512)
  5142.  00h    WORD    number of planes (always 01h on HP 95LX)
  5143.  02h    WORD    number of bits/pixel (always 01h on HP 95LX)
  5144.  04h    WORD    image width in pixels
  5145.  06h    WORD    image height in pixels
  5146.  08h  N BYTEs    image data
  5147.         requires (WIDTH+7)/8 * HEIGHT bytes
  5148. --------b-5F0E-------------------------------
  5149. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PUT IMAGE
  5150.     AH = 0Eh
  5151.     AL = replacement rule (see #2513)
  5152.     DX,CX = row,column of top left corner
  5153.     ES:DI -> image buffer (see #2512)
  5154. Note:    if the specified image does not fit completely on the screen, this call
  5155.       does nothing
  5156. SeeAlso: AH=0Dh
  5157.  
  5158. Bitfields for replacement rule:
  5159. Bit(s)    Description    (Table 2513)
  5160.  2    invert image before applying rule
  5161.  1-0    function (00 force, 01 AND, 10 OR, 11 XOR)
  5162. --------b-5F0F-------------------------------
  5163. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - WRITE TEXT
  5164.     AH = 0Fh
  5165.     AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise)
  5166.     DX,CX = row,column of first character's top left corner
  5167.     ES:DI -> ASCIZ text
  5168. --------b-5F10-------------------------------
  5169. INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - GET FONT POINTER
  5170.     AH = 10h
  5171.     CX = font size of desired font
  5172.         0808h  8x8    small  (80x25 text)
  5173.         0A0Bh 11x10 medium (64x18 text)
  5174.         100Ch 12x16 large  (40x16 text)
  5175. Return: DX:AX -> ptr to font or 0000h:fontID# if built-in font
  5176. SeeAlso: AH=11h
  5177. --------b-5F11-------------------------------
  5178. INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - SET CURRENT FONT
  5179.     AH = 11h
  5180.     ES:DI -> ptr to font or 0000h:fontID# for built-in font
  5181. Note:    this function should be called immediately after AH=10h with the
  5182.       pointer supplied by that call
  5183. SeeAlso: AH=10h
  5184. --------*-60---------------------------------
  5185. INT 60 - reserved for user interrupt
  5186. --------v-60---------------------------------
  5187. INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
  5188. Desc:    The "Zero Bug" virus hooks this vector.     It considers itself installed
  5189.       if offset 103h of the handler's segment contains the bytes "ZE"
  5190. SeeAlso: INT 32"VIRUS",INT 44"VIRUS",INT 61"SEMTEX"
  5191. --------d-60---------------------------------
  5192. INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
  5193. SeeAlso: INT 41"HARD DISK 0",INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
  5194. SeeAlso: INT 64"Adaptec",INT C0"AMI",#0629
  5195. Notes:    this vector stores the first four bytes of the parameter table for
  5196.       hard disk 0
  5197.     these vectors are used by the following Adaptec controllers:
  5198.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  5199.     these vectors are NOT used by the following Adaptec controllers:
  5200.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  5201. --------b-60---------------------------------
  5202. INT 60 - TI Professional PC - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!)
  5203. Desc:    the low word of this vector contains the segment of the RAM data area
  5204.       to be used by the system ROM at F400h:A000h, and the high word
  5205.       contains the length of the data area (see #2514)
  5206. SeeAlso: INT 61"TI Professional PC",INT 66"TI Professional PC"
  5207.  
  5208. Format of TI Professional System ROM data area:
  5209. Offset    Size    Description    (Table 2514)
  5210.  00h    BYTE    port 00h shadow
  5211.  01h    BYTE    port 03h shadow
  5212.  02h    BYTE    port 04h shadow
  5213.  03h    WORD    system configuration word (see #2515)
  5214.  05h    BYTE    25ms count
  5215.  06h    WORD    offset of timing event 1 (0008h)
  5216.  08h    WORD    (event 1) offset of timing event 2 (0010h)
  5217.  0Ah    BYTE    (event 1) unused (FFh)
  5218.  0Bh    BYTE    (event 1) active flag (bit 7 set if on)
  5219.  0Ch    WORD    (event 1) count-down until end of event
  5220.  0Eh    WORD    (event 1) event routine (in segment F400h) to call at timeout
  5221.  10h    WORD    (event 2) offset of timing event 3 (0018h)
  5222.  12h    BYTE    (event 2) unused (FFh)
  5223.  13h    BYTE    (event 2) active flag (bit 7 set if on)
  5224.  14h    WORD    (event 2) count-down until end of event
  5225.  16h    WORD    (event 2) event routine (in segment F400h) to call at timeout
  5226.  18h    WORD    (event 3) offset of timing event 3 (0020h)
  5227.  1Ah    BYTE    (event 3) unused (FFh)
  5228.  1Bh    BYTE    (event 3) active flag (bit 7 set if on)
  5229.  1Ch    WORD    (event 3) count-down until end of event
  5230.  1Eh    WORD    (event 3) event routine (in segment F400h) to call at timeout
  5231.  20h    WORD    (event 4) 0000h - last event
  5232.  22h    BYTE    (event 4) unused (FFh)
  5233.  23h    BYTE    (event 4) active flag (bit 7 set if on)
  5234.  24h    WORD    (event 4) count-down until end of event
  5235.  26h    WORD    (event 4) event routine (in segment F400h) to call at timeout
  5236.  28h    WORD    offset of start of text display within segment DE00h
  5237.  2Ah    WORD    end of display
  5238.  2Ch    WORD    current absolute cursor position
  5239.  2Eh    WORD    start of current character row
  5240.  30h    WORD    current cursor column
  5241.  32h    WORD    cursor type and size (see #3512)
  5242.  34h    WORD    start of protected status region on screen (0000h = none)
  5243.  36h    BYTE    pop flag used by some ROM routines
  5244.         00h pop registers before return
  5245.         nonzero: do not pop
  5246.  37h    BYTE    unused (FFh)
  5247.  38h    BYTE    PAUSE flag
  5248.         00h off
  5249.         FFh on
  5250.  39h    BYTE    temp: current attribute while moving characters on screen
  5251.  3Ah    WORD    start of keyboard queue (next key at start+2 or 0042h if 0060h)
  5252.  3Ch    WORD    end of keyboard queue (next key inserted at end+2 or 0042h)
  5253.  3Eh    BYTE    number of characters in buffer
  5254.  3Fh    BYTE    keyboard mode flags (see #3513)
  5255.  40h    BYTE    Alt-digit-digit-digit accumulator
  5256.  41h    BYTE    Alt-digit-digit-digit count of digits (mod 3)
  5257.  42h 16 WORDs    keyboard buffer (circular queue)
  5258.  62h  8 DWORDs    Drive Interface Table pointers for floppies A:-D: + four others
  5259.         (0000h:0000h if pointer not in use)
  5260.  82h    BYTE    disk-error retry count (incremented on each disk error)
  5261.  83h  2    BYTEs    BIOS scratch space
  5262.  85h  8 BYTEs    current cylinder number for drives 0-7
  5263.         FFh = unknown
  5264.  8Dh    BYTE    BIOS scratch space
  5265.  8Eh    BYTE    hard error code for last disk access
  5266.         00h operation successful
  5267.  8Fh  8 BYTEs    save area for disk DSR parameters
  5268.  97h  6 BYTEs    current drive status
  5269.  9Dh    BYTE    retry error status
  5270.  9Eh    BYTE    BIOS scratch space
  5271.  9Fh  7 BYTEs    ???
  5272.  A6h  2    WORDs    INT 47 save area for SS,SP
  5273.  AAh  2    WORDs    INT 46 save area for SS,SP
  5274.  AEh  2    WORDs    INT 43 save area for SS,SP
  5275.  B2h  2    WORDs    save area for SS,SP to be restored by common intr. exit routine
  5276.  B6h 24 WORDs    stack for INT 47
  5277.  E6h 24 WORDs    stack for INT 46
  5278. 116h 17 WORDs    stack for INT 43
  5279. 13Ah  6 BYTEs    system date and time (hundredths, seconds, minutes, hours, and
  5280.           WORD days since 1/1/1980)
  5281. Note:    timing event 1 is the disk I/O timeout, event 2 is the floppy disk
  5282.       motor timeout, event 3 is the floppy disk motor spin-up time, and
  5283.       event 4 is used to turn off the speaker after a delay
  5284.  
  5285. Bitfields for TI Professional PC cursor size and type:
  5286. Bit(s)    Description    (Table 3512)
  5287.  15    reserved (0)
  5288.  14-13    cursor type
  5289.     00 nonblinking
  5290.     01 off
  5291.     10 slow blink
  5292.     11 fast blink
  5293.  12-8    starting scan line (0-11)
  5294.  7-5    reserved (0)
  5295.  4-0    ending scan line (0-11)
  5296. SeeAlso: #2514
  5297.  
  5298. Bitfields for TI Professional PC keyboard mode flags:
  5299. Bit(s)    Description    (Table 3513)
  5300.  7    CapsLock was ON at last keypress
  5301.  6-4    reserved (0)
  5302.  3    repeat key
  5303.  2    Shift was down at last keypress
  5304.  1    Alt was down at last keypress
  5305.  0    Ctrl was down at last keypress
  5306. SeeAlso: #2514
  5307.  
  5308. Bitfields for TI Professional System Configuration Word:
  5309. Bit(s)    Description    (Table 2515)
  5310.  0    drive A: installed
  5311.  1    drive B: installed
  5312.  2    drive C: installed
  5313.  3    drive D: installed
  5314.  4    drive A: is 80-track
  5315.  5    drive A: is double-sided
  5316.  6    60-Hz (USA,etc.) system instead of 50-Hz (Europe)
  5317.  7    hard disk installed
  5318.  8    serial port 1 installed
  5319.  9    serial port 2 installed
  5320.  10    serial port 3 installed
  5321.  11    serial port 4 installed
  5322.  14-12    installed graphics planes
  5323.     000 none
  5324.     001 plane A
  5325.     111 planes A, B, and C
  5326.  15    clock installed
  5327. SeeAlso: #2514
  5328. --------b-60---------------------------------
  5329. INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
  5330. Desc:    supplies a number of subfunctions which perform such functions as
  5331.       drawing boxes and menus, and provide input line editing
  5332. SeeAlso: INT 61/AH=00h"Atari",INT 61"EXTENDED BIOS"
  5333. --------V-60---------------------------------
  5334. INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  5335. Program: Nabbit is a shareware resident screen data grabber by RSE Inc.
  5336. Range:    INT 60 to INT 66, selected by searching for first free vector
  5337. Note:    the Nabbit installation check consists of testing whether the
  5338.       interrupt vector points at the ASCIZ signature string "iG"
  5339.       (69h 47h 00h)
  5340. --------V-60---------------------------------
  5341. INT 60 - ATI M64VBE.COM - INSTALLATION SIGNATURE
  5342. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  5343. Range:    INT 60 to INT 66, selected by searching for first free vector
  5344. Note:    the installation check is to scan for an interrupt with the ASCIZ
  5345.       signature "M64VBE" three bytes past the interrupt handler
  5346. SeeAlso: INT 10/AX=4FDDh"M64VBE",INT 10/AX=4FFFh/BX=364Dh"M64VBE"
  5347. --------V-60---------------------------------
  5348. INT 60 U - Buffit v3.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  5349. Program: Buffit is a shareware scrollback utility by D.T. Hamilton
  5350. Range:    INT 60 to INT 6F, selected by searching for first free vector
  5351. Notes:    the Buffit installation check consists of testing whether the
  5352.       interrupt vector points at the ASCII signature "Buffit  "
  5353.     there is a private entry point (see #2516) immediately following the
  5354.       signature string, i.e. eight bytes beyond the address pointed at
  5355.       by the interrupt vector
  5356.  
  5357. (Table 2516)
  5358. Call Buffit private entry point with:
  5359.     AH = function
  5360.         00h get information and hotkey state
  5361.         01h get information and toggle hotkey state
  5362. Return: AH = new hotkey state (00h enabled, 01h disabled)
  5363.     AL = hotkey scan code (see #0005)
  5364.     BH = hotkey shift states
  5365.     BL = ??? (01h)
  5366.     CX = segment of resident code
  5367.     DH = interrupt number used for signature pointer
  5368.     DL = ??? (00h)
  5369.     SI = INT 09 handler offset
  5370.     DI = INT 21 handler offset
  5371. Index:    hotkeys;Buffit
  5372. --------r-60---------------------------------
  5373. INT 60 - PC-IPC API
  5374.     STACK:    DWORD    pointer to parameter block (see #2517)
  5375. Return: STACK:    unchanged
  5376. Program: PC-IPC is a shareware TSR by Donnelly Software Engineering which
  5377.       allows communication between independent programs
  5378. Range:    INT 00 to INT FF, selected by commandline switch
  5379.  
  5380. Format of PC-IPC parameter block:
  5381. Offset    Size    Description    (Table 2517)
  5382.  00h    WORD    caller's ID
  5383.  02h    WORD    to ID
  5384.  04h    WORD    command code (see #2518)
  5385.  06h    WORD    returned status (see #2519)
  5386.  08h    WORD    returned error code (see #2520)
  5387.  0Ah    WORD    size of data
  5388.  0Ch    DWORD    pointer to data buffer
  5389.  
  5390. (Table 2518)
  5391. Values for PC-IPC command code:
  5392.  01h "IPC_CMND_INQUIRE"     inquire current status
  5393.     set status field, writes WORD to data buffer containing free
  5394.       message space in bytes, and sets the "size" field to the
  5395.       number of messages waiting
  5396.  02h "IPC_CMND_ENABLE"    reenable PC-IPC
  5397.     ignored unless called with the same ID that disabled PC-IPC
  5398.  03h "IPC_CMND_DISABLE" disable PC-IPC
  5399.  04h "IPC_CMND_INSTALL" reset PC-IPC
  5400.  06h "IPC_CMND_RDATA"    read data
  5401.     returns first message in data buffer, sets "size" to message length
  5402.       and "to ID" field to sender's ID
  5403.     if no messages available, bit 4 of status is cleared and "size" is
  5404.       set to zero
  5405.  07h "IPC_CMND_SDATA"    send data
  5406.  08h "IPC_CMND_REQID"    require user ID
  5407.     create a new recognized ID and return in "caller's ID" field
  5408.  09h "IPC_CMND_DELID"    cancel user ID
  5409.     delete caller's ID from pool of recognized IDs
  5410.  0Ah "IPC_CMND_RDATAW"    read data, wait if no messages available
  5411.  0Bh "IPC_CMND_VERS"    get PC-IPC version
  5412.     string representing version returned in data buffer, "size" field
  5413.       set to length of string
  5414.  
  5415. Bitfields for returned status:
  5416. Bit(s)    Description    (Table 2519)
  5417.  0    unused
  5418.  1    IPC enabled
  5419.  2    IPC installed
  5420.  3    error
  5421.  4    message(s) available
  5422.  
  5423. (Table 2520)
  5424. Values for PC-IPC error code:
  5425.  00h    no error
  5426.  01h    invalid command or parameter
  5427.  02h    only process 0 can install/reset IPC
  5428.  03h    process can not install/reset IPC
  5429.  04h    IPC is not enabled
  5430.  05h    process can not disable IPC
  5431.  06h    invalid destination process ID
  5432.  07h    invalid sending process ID
  5433.  08h    invalid data destination
  5434.  09h    no more process IDs available
  5435.  0Ah    can not relinquish that process ID
  5436.  0Bh    message space is full
  5437.  0Ch    IPC is not installed
  5438. --------R-60---------------------------------
  5439. INT 60 - Tangram Arbiter - API
  5440. Desc:    Arbiter makes a PC disk look like a slow disk over an SNA link to an
  5441.       IBM mainframe
  5442. Range:    INT 60h to INT 66h, selected by configuration parameter
  5443. Notes:    identified by string "@ARB_API" immediately following a short jump at
  5444.       the interrupt handler address
  5445. --------N-60---------------------------------
  5446. INT 60 - Excelan LAN Workplace for DOS 3.5 - API
  5447.     ES:BX -> request packet (see #2521)
  5448. Return: request packet updated
  5449. Notes:    this interrupt is also supported by Beame&Whiteside's BWLWP35 shim,
  5450.       which was used in creating this description
  5451.     the installation check consists of testing for the WORD 4142h ('AB')
  5452.       immediately preceding the interrupt handler
  5453. BUG:    because BWLWP35 range-checks only the low byte of the function number,
  5454.       and has a fencepost error even in that test, functions 000Bh and
  5455.       XX01h-XX0Bh (XX nonzero) branch to random locations
  5456. SeeAlso: INT 2F/AX=7A40h
  5457.  
  5458. Format of Excelan request packet:
  5459. Offset    Size    Description    (Table 2521)
  5460.  00h 12 BYTEs    ???
  5461.  0Ch    WORD    (ret) error code (see #2522)
  5462.  0Eh    DWORD    -> FAR function for ???
  5463.  12h    WORD    function number
  5464.         0001h ???
  5465.         0002h NOP
  5466.         0003h NOP
  5467.         0004h NOP
  5468.         0005h ???
  5469.         0006h get ??? record
  5470.         0007h NOP
  5471.         0008h reset ???
  5472.         0009h NOP
  5473.         000Ah set ???
  5474.     ???
  5475. ---function 01h---
  5476.  20h    BYTE    (call) subfunction (32h-3Bh)
  5477.         3Bh non-blocking I/O request (will be tested every clock tick)
  5478.  21h    BYTE    (ret) error code
  5479.         00h successful
  5480.         09h invalid connection number
  5481.         2Ah bad connection type
  5482.         45h ???
  5483. ---function 01h, subfunction 32h---
  5484.  3Ah    WORD    (call) connection type (01h stream, 02h datagram)
  5485. ---function 01h, subfunction 34h---
  5486.  26h    WORD    (call) ???
  5487.  28h    WORD    (call) ???
  5488.  2Ah    WORD    (call) ???
  5489. ---function 01h, subfunction 35h---
  5490.  1Ah    WORD    (call) connection number???
  5491.  26h    WORD    (ret) ???
  5492. ---function 01h, subfunction 36h---
  5493.  1Ah    WORD    (call) connection number???
  5494.  38h    WORD    ???
  5495. ---function 01h, subfunction 37h---
  5496.  24h    WORD    (ret) ???
  5497.  26h    WORD    (ret) ???
  5498. ---function 01h, subfunction 38h---
  5499.  1Ah    WORD    (call) connection number???
  5500. ---function 01h, subfunction 3Ah---
  5501.  22h    WORD    (call) ???
  5502.         667Eh ???
  5503.         667Fh ???
  5504.  24h    BYTE    (call 667Eh) ???
  5505.  24h    WORD    (return 667Fh) ???
  5506. ---function 01h, subfunction 3Bh---
  5507.  0Eh    DWORD    (call) -> function to invoke for I/O or 0000h:0000h
  5508.         function called with AX = 0000h
  5509.                      STACK: DWORD -> request packet
  5510.                         WORD 0000h
  5511.             should return STACK unchanged
  5512.  1Ah    WORD    (call) connection number???
  5513.  21h    BYTE    (ret) set to 01h when I/O becomes possible
  5514.  22h    BYTE    (call) direction (00h write, 01h read)
  5515.  34h    DWORD    (ret) -> next pending request packet
  5516. ---function 05h---
  5517.  1Eh    WORD    (call) ???
  5518.  20h    WORD    (call) ???
  5519.  34h    DWORD    (call) -> ???
  5520. ---function 06h---
  5521.  16h    DWORD    (call) -> buffer for ??? record (see #2523)
  5522.  1Ah    WORD    (call) number of bytes to copy
  5523.  22h    WORD    (ret) number of bytes transferred
  5524. ---function 08h---
  5525.  14h    WORD    (ret) ??? (0001h)
  5526. ---function 0Ah---
  5527.  16h    DWORD    (call) -> WORD ???
  5528.  1Ch    WORD    (call) must be 000Ah for BWLWP35
  5529.  
  5530. (Table 2522)
  5531. Values for Excelan error code:
  5532.  0000h    successful
  5533.  002Dh    invalid function
  5534.  0050h    ???
  5535.  
  5536. Format of ??? record:
  5537. Offset    Size    Description    (Table 2523)
  5538.  00h    WORD    offset of ???
  5539.  02h  4 BYTEs    ???
  5540.  06h    DWORD    IP address (big-endian)
  5541.  0Ah  6 BYTEs    physical address (big-endian)
  5542.     ???
  5543. --------N-60---------------------------------
  5544. INT 60 - TCPDRV 2.01 - TCP/IP Application Binary Interface (ABI)
  5545. Note:    The handler for the interrupt will start with a 2-byte NEAR jump
  5546.       instruction, followed by the ASCIZ signature string "TCP DRVR".
  5547.     To find the interrupt being used by the driver, an application
  5548.       should scan through interrupt vectors 60h to 7Fh until it finds
  5549.       one with the "TCP DRVR" string.
  5550.     This specification is being proposed by Peter R. Tattam from the
  5551.       University of Tasmania.
  5552. Index:    installation check;TCPDRV
  5553. --------G-60---------------------------------
  5554. INT 60 U - INTRSPY/CMDSPY v1.0 only - API
  5555. Program: INTRSPY is a script-driven debugger included with the book
  5556.       _Undocumented_DOS_.
  5557. Notes:    INTRSPY will hook the first available interrupt in the range 60h-67h.
  5558.     The installation check is to
  5559.       a) determine that the handler is an IRET instruction
  5560.       b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
  5561.     If INTRSPY is installed, the DWORD immediately after the IRET stores
  5562.       its entry point (see #2524)
  5563.     INTRSPY v2.0 (included with the second edition of the book) no longer
  5564.       supports this API
  5565. Index:    installation check;INTRSPY
  5566.  
  5567. (Table 2524)
  5568. Call INTRSPY v1.0 entry point with:
  5569.     AH = function
  5570.         00h ???
  5571.         01h set current directory (for use in reporting)
  5572.         ES:DI -> counted string containing directory name (max 79 char)
  5573.         02h set name of script file
  5574.         ES:DI -> counted string containing file name (max 79 chars)
  5575.         03h set script arguments
  5576.         ES:DI -> counted string containing arguments (max 79 chars)
  5577.         04h get directory set with function 01h
  5578.         ES:DI -> 80-byte buffer for directory name
  5579.         05h get name of script file
  5580.         ES:DI -> 80-byte buffer for script filename
  5581.         06h get script arguments
  5582.         ES:DI -> 80-byte buffer for script arguments
  5583.         07h get ???
  5584.         CL = 00h-15h specifies what to get
  5585.         ES:DI -> WORD to be set with desired value on return
  5586.         08h get ???
  5587.         ES:DI -> WORD to be set with returned value
  5588.         09h get ???
  5589.         ES:DI -> WORD to be set with returned value
  5590.         0Bh store code for interrupt handler???
  5591.         ES:DI -> data
  5592.         CX = number of bytes
  5593.         0Ch ???
  5594.         ES:DI -> ???
  5595.         0Dh get ???
  5596.         ES:DI -> BYTE to be set with returned value
  5597.         0Eh set ??? flag
  5598.         0Fh clear ??? flag
  5599.         10h ???
  5600.         Return: AL = 04h or 05h if failed
  5601.         11h ???
  5602.         Return: AL = 05h if failed
  5603.         12h get ???
  5604.         ES:DI -> buffer
  5605.         Return: CX = number of bytes returned in buffer
  5606.         13h ???
  5607. Return: AH = 00h
  5608.     AL = status
  5609.         00h successful
  5610.         01h invalid function
  5611.         02h ???
  5612.         03h ???
  5613.         04h ???
  5614.         05h ???
  5615. --------u-60---------------------------------
  5616. INT 60 U - PC/370 v4.2 - ???
  5617.     ???
  5618. Return: ???
  5619. Program: PC/370 is an IBM 370 emulator by Donald S. Higgins
  5620. Range:    INT 00 to INT FF, selected by patching the executable
  5621. Note:    the documentation includes instructions for patching the system for
  5622.       another interrupt
  5623. SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"
  5624. --------r-60---------------------------------
  5625. INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
  5626. SeeAlso: INT 61"JPI"
  5627. --------N-60---------------------------------
  5628. INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
  5629. Range:    INT 20 to INT FF
  5630. Notes:    The handler for the interrupt will start with a 3-byte jump
  5631.       instruction, followed by the ASCIZ string "PKT DRVR" (the
  5632.       terminating NUL is significant).
  5633.     To find the interrupt being used by the driver, an application should
  5634.       scan through interrupt vectors 20h to FFh (60h through 80h for
  5635.       v1.09- of the specification) until it finds one with the "PKT DRVR"
  5636.       string.
  5637.     AH values of 80h to FFh have been reserved for user-defined additions.
  5638. --------I-60---------------------------------
  5639. INT 60 u - 3270-PC CONTROL PROGRAM - ???
  5640. --------b-60----DI0100-----------------------
  5641. INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
  5642.     DI = 0100h
  5643.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5644.         DWORD    pointer to event record (see #2526)
  5645. Return: event record filled
  5646.     STACK unchanged
  5647. Note:    this call will timeout after about 500ms
  5648. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX"
  5649.  
  5650. (Table 2525)
  5651. Values for HP 95LX event type:
  5652.  00h    no events
  5653.  01h    keystroke available
  5654.  02h    Ctrl-Break
  5655.  03h    reactivation (always follows deactivation event)
  5656.  04h    about to deactivate (sleep)
  5657.     next get-event call will not return until reactivated
  5658.  05h    forced application termination
  5659.  06h    1-2-3 bridge service request (only given to 1-2-3)
  5660.  07h    request to grow
  5661.  08h    request to shrink
  5662.  09h    application's alarm expired
  5663.  0Ah    daily chance to set an alarm
  5664.  0Bh    system date or time has been changed
  5665.  
  5666. Format of HP 95LX event record:
  5667. Offset    Size    Description    (Table 2526)
  5668.  00h    WORD    event type (see #2525)
  5669.  02h    WORD    ASCII code page 850 translation of keystroke
  5670.         or grow/shrink amount in paragraphs or 0000h if error
  5671.         or alarm expiration data
  5672.  04h    BYTE    scan code from BIOS
  5673.  05h    BYTE    shift key states at time keystroke is retrieved
  5674.  06h    WORD    LICS translation of keystroke
  5675.  08h    BYTE    function key number (1-2-3 only)
  5676.  09h    DWORD    pointer to 1-2-3 bridge record (see #2528)
  5677.         or pointer to time change structure (see #2527)
  5678. Note:    if the System Manager is awaiting the conclusion of a bridge service
  5679.       or grow/shrink call and the event type field is set to FFFFh on
  5680.       entry, the SysMgr will resume
  5681.  
  5682. Format of HP 95LX time change structure:
  5683. Offset    Size    Description    (Table 2527)
  5684.  00h    WORD    old year
  5685.  02h    BYTE    old month
  5686.  03h    BYTE    old date
  5687.  04h    BYTE    old day
  5688.  05h    BYTE    old hour
  5689.  06h    BYTE    old minute
  5690.  07h    BYTE    old second
  5691.  08h    BYTE    old hundredth of a second
  5692.  09h  9 BYTEs    new time in same format as old time
  5693. --------b-60----DI0101-----------------------
  5694. INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
  5695.     DI = 0101h
  5696.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5697.         DWORD pointer to event record (INT 60/DI=0100h)
  5698. Return: event record filled
  5699.     STACK unchanged
  5700. Note:    this call returns immediately if no event is available
  5701. SeeAlso: INT 60/DI=0100h
  5702. --------b-60----DI0102-----------------------
  5703. INT 60 u - HP 95LX System Manager - "SH_STATUS"
  5704.     DI = 0102h
  5705.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5706. Return: ???
  5707.     STACK unchanged
  5708. --------b-60----DI0104-----------------------
  5709. INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
  5710.     DI = 0104h
  5711.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5712.         DWORD pointer to bridge record (see #2528)
  5713. Return: ???
  5714.     STACK unchanged
  5715.  
  5716. Format of HP 95LX bridge record:
  5717. Offset    Size    Description    (Table 2528)
  5718.  00h    WORD    function code (see #2529)
  5719.  02h    WORD    return code from 1-2-3
  5720.  04h 16 BYTEs    ASCII range name
  5721.  14h    WORD    start column of range
  5722.  16h    WORD    start row of range
  5723.  18h    WORD    end column of range
  5724.  1Ah    WORD    end row of range
  5725.  1Ch    WORD    order in which data is placed in buffer
  5726.  1Eh    WORD    buffer size
  5727.  20h    WORD    offset within bridge record's segment of buffer for cell data
  5728.  
  5729. (Table 2529)
  5730. Values for HP 95LX function code:
  5731.  00h    test
  5732.  01h    get range
  5733.  02h    "GETRANGE_ADDR"
  5734.  03h    "SETRANGE_ADDR"
  5735.  04h    "GETRANGE_DATA"
  5736.  05h    "SETRANGE_DATA"
  5737.  06h    recalculate
  5738.  07h    get cursor
  5739.  08h    set cursor
  5740.  09h    redisplay
  5741.  0Ah    cell type
  5742.  0Bh    "CALCTYPE"
  5743. --------b-60----DI0105-----------------------
  5744. INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
  5745.     DI = 0105h
  5746.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5747. Return: ???
  5748.     STACK unchanged
  5749. --------b-60----DI0106-----------------------
  5750. INT 60 u - HP 95LX System Manager - YIELD CPU
  5751.     DI = 0106h
  5752.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5753.         DWORD pointer to ???
  5754. Return: ???
  5755.     STACK unchanged
  5756. SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
  5757. --------b-60----DI0107-----------------------
  5758. INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
  5759.     DI = 0107h
  5760.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5761.         DWORD pointer to ???
  5762. Return: ???
  5763.     STACK unchanged
  5764. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  5765. --------b-60----DI0200-----------------------
  5766. INT 60 u - HP 95LX System Manager - SETUP MENU
  5767.     DI = 0200h
  5768.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5769.         DWORD    pointer to menu data (see #2530)
  5770.         DWORD    pointer to ???
  5771.         WORD    number of items on menu???
  5772.         WORD    ???
  5773.         DWORD    pointer to ???
  5774.         WORD    ???
  5775.         DWORD    pointer to ???
  5776. Return: ???
  5777.     STACK unchanged
  5778. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
  5779.  
  5780. Format of HP 95LX menu data:
  5781. Offset    Size    Description    (Table 2530)
  5782.  00h 80 BYTEs    first line of menu text
  5783.  50h 80 BYTEs    second line of menu text
  5784.  A0h 80 BYTEs    third line of menu text
  5785.  F0h    WORD    number of keywords
  5786.  F2h    WORD    index of currently highlighted keyword or FFFFh
  5787.  F4h    WORD    single prompt on top line if nonzero
  5788.  F6h 20 BYTEs    which line each of 20 keywords is located on
  5789. 10Ah 20 BYTEs    offset of each of 20 keywords within its line
  5790. 11Eh 20 BYTEs    length of each of 20 keywords
  5791. 132h 20 BYTEs    first letter of each of 20 keywords
  5792. 146h 20 WORDs    offsets of long prompts for each of 20 keywords
  5793. --------b-60----DI0201-----------------------
  5794. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
  5795.     DI = 0201h
  5796.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5797.         DWORD    pointer to menu data (see #2530)
  5798. Return: ???
  5799.     STACK unchanged
  5800. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h
  5801. --------b-60----DI0202-----------------------
  5802. INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
  5803.     DI = 0202h
  5804.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5805.         DWORD    pointer to menu data (see #2530)
  5806. Return: ???
  5807.     STACK unchanged
  5808. SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h
  5809. --------b-60----DI0203-----------------------
  5810. INT 60 u - HP 95LX System Manager - REMOVE MENU
  5811.     DI = 0203h
  5812.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5813.         DWORD    pointer to menu data (see #2530)
  5814. Return: ???
  5815.     STACK unchanged
  5816. SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
  5817. --------b-60----DI0204-----------------------
  5818. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
  5819.     DI = 0204h
  5820.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5821.         DWORD    pointer to menu data (see #2530)
  5822.         WORD    keystroke
  5823.         DWORD    pointer to WORD to receive selection number
  5824. Return: buffer for selection number filled with index of selected menu item or
  5825.       FFFFh if no final selection yet
  5826.     STACK unchanged
  5827. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
  5828. --------b-60----DI0205-----------------------
  5829. INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
  5830.     DI = 0205h
  5831.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5832.         DWORD    pointer to file menu structure (see #2531)
  5833.         DWORD    pointer to edit record (see #2534 at INT 60/DI=0400h)
  5834.         DWORD    pointer to wildcard filespec for initial file list
  5835.         WORD    row???
  5836.         WORD    column???
  5837. Return: ???
  5838.     STACK unchanged
  5839. SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
  5840.  
  5841. Format of HP 95LX file menu structure:
  5842. Offset    Size    Description    (Table 2531)
  5843.  00h    DWORD    pointer to ASCIZ base directory name
  5844.  04h    DWORD    pointer to ASCIZ file pattern (wildcard filespec)
  5845.  08h    DWORD    pointer to file list workspace, at least 1024 bytes (see #2532)
  5846.  0Ch    WORD    size of file list workspace in bytes
  5847.  0Eh    WORD    starting row (-3 is topmost, 0 is first non-"reserved" line)
  5848.  10h    WORD    starting column
  5849.  12h    WORD    number of lines
  5850.  14h    WORD    number of columns
  5851.  16h    WORD    number of files displayed on each line
  5852. ---the remaining fields are initialized by the System Manager---
  5853.  18h    WORD    0000h if first edit character, else multiline
  5854.  1Ah    WORD    number of files in file list
  5855.  1Ch    WORD    max files workspace has room for
  5856.  1Eh    WORD    file at top of list
  5857.  20h    WORD    index of file to highlight
  5858.  22h    WORD    index of file to unhighlight
  5859.  24h    WORD    current focus (01h FMENU, 02h EDIT)
  5860.  
  5861. Format of HP 95LX file list workspace entry:
  5862. Offset    Size    Description    (Table 2532)
  5863.  00h    BYTE    file attributes
  5864.  01h    WORD    file time (see #1005 at INT 21/AX=5700h)
  5865.  03h    WORD    file date (see #1006 at INT 21/AX=5700h)
  5866.  05h    DWORD    file size
  5867.  09h 13 BYTEs    ASCIZ filename
  5868. --------b-60----DI0206-----------------------
  5869. INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
  5870.     DI = 0206h
  5871.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5872.         DWORD    pointer to file menu structure (see #2531)
  5873.         DWORD    pointer to edit record (see #2534 at INT 60/DI=0400h)
  5874. Return: ???
  5875.     STACK unchanged
  5876. SeeAlso: INT 60/DI=0205h
  5877. --------b-60----DI0207-----------------------
  5878. INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
  5879.     DI = 0207h
  5880.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5881.         DWORD    pointer to file menu structure (see #2531)
  5882.         DWORD    pointer to edit record (see #2534 at INT 60/DI=0400h)
  5883.         WORD    keystroke
  5884. Return: AX = status (see #2533)
  5885.     STACK unchanged
  5886. SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
  5887.  
  5888. (Table 2533)
  5889. Values for HP 95LX System Manager status:
  5890.  0000h    keystroke processed, call INT 60/DI=0206h to refresh menu
  5891.  0001h    redisplay application area before refreshing menu
  5892.  0002h    user confirmed selection, filename is in edit record's buffer
  5893.  0003h    user aborted menu
  5894.  FFFBh    bad filename
  5895.  FFFCh    bad directory
  5896.  FFFDh    bad drive
  5897.  FFFEh    unknown keystroke
  5898.  FFFFh    keystroke known but invalid in current context
  5899. --------b-60----DI0208-----------------------
  5900. INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
  5901.     DI = 0208h
  5902.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5903.         DWORD    pointer to file menu structure (see #2531)
  5904.         DWORD    pointer to edit record (see #2534 at INT 60/DI=0400h)
  5905. Return: ???
  5906.     STACK unchanged
  5907. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
  5908. --------b-60----DI0300-----------------------
  5909. INT 60 u - HP 95LX System Manager - DISPLAY STRING
  5910.     DI = 0300h
  5911.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5912.         WORD    starting row (-3 is topmost, 0 is first user line)
  5913.         WORD    starting column
  5914.         DWORD    pointer to string
  5915.         WORD    length of string
  5916.         WORD    display style: 0000h normal, 0001h reverse video
  5917.         WORD    "OSTYLE"
  5918. Return: ???
  5919.     STACK unchanged
  5920. SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
  5921. --------b-60----DI0301-----------------------
  5922. INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
  5923.     DI = 0301h
  5924.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5925.         WORD    starting row (-3 is topmost, 0 is first user line)
  5926.         WORD    starting column
  5927.         WORD    number of rows
  5928.         WORD    number of columns
  5929. Return: ???
  5930.     STACK unchanged
  5931. SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
  5932. --------b-60----DI0302-----------------------
  5933. INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
  5934.     DI = 0302h
  5935.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5936.         WORD    starting row???
  5937.         WORD    starting column???
  5938.         WORD    height of scroll region???
  5939.         WORD    width of scroll region???
  5940.         WORD    number of lines to scroll region???
  5941. Return: ???
  5942.     STACK unchanged
  5943. SeeAlso: INT 60/DI=0301h
  5944. --------b-60----DI0303-----------------------
  5945. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
  5946.     DI = 0303h
  5947.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5948.         WORD    ???
  5949.         WORD    ???
  5950.         WORD    ???
  5951.         WORD    ???
  5952.         DWORD    pointer to ???
  5953. Return: ???
  5954.     STACK unchanged
  5955. --------b-60----DI0304-----------------------
  5956. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
  5957.     DI = 0304h
  5958.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5959.         DWORD    pointer to ???
  5960.         WORD    ???
  5961. Return: ???
  5962.     STACK unchanged
  5963. --------b-60----DI0305-----------------------
  5964. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
  5965.     DI = 0305h
  5966.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5967.         WORD    ???
  5968.         WORD    ???
  5969.         DWORD    pointer to ???
  5970.         WORD    ???
  5971. Return: ???
  5972.     STACK unchanged
  5973. --------b-60----DI0307-----------------------
  5974. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
  5975.     DI = 0307h
  5976.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5977.         WORD    ???
  5978.         WORD    ???
  5979.         WORD    ???
  5980. Return: ???
  5981.     STACK unchanged
  5982. --------b-60----DI0308-----------------------
  5983. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
  5984.     DI = 0308h
  5985.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5986. Return: ???
  5987.     STACK unchanged
  5988. --------b-60----DI0309-----------------------
  5989. INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
  5990.     DI = 0309h
  5991.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5992.         WORD    new mode
  5993. Return: ???
  5994.     STACK unchanged
  5995. --------b-60----DI030A-----------------------
  5996. INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
  5997.     DI = 030Ah
  5998.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5999. Return: ???
  6000.     STACK unchanged
  6001. --------b-60----DI030B-----------------------
  6002. INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
  6003.     DI = 030Bh
  6004.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6005.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  6006.         WORD    column
  6007. Return: ???
  6008.     STACK unchanged
  6009. Note:    cursor is hidden if the specified position is not on the physical
  6010.       display
  6011. SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  6012. --------b-60----DI0400-----------------------
  6013. INT 60 u - HP 95LX System Manager - "EDIT_INIT"
  6014.     DI = 0400h
  6015.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6016.         DWORD    pointer to edit record (see #2534)
  6017.         DWORD    pointer to string to be edited
  6018.         WORD    initial length of string being edited
  6019.         WORD    maximum length of edited string
  6020.         WORD    row of edit field
  6021.         WORD    leftmost column of edit field
  6022. Return: ???
  6023.     STACK unchanged
  6024.  
  6025. Format of HP 95LX edit record:
  6026. Offset    Size    Description    (Table 2534)
  6027.  00h    WORD    current length of edit buffer
  6028.  02h    BYTE    flag for special processing on first character
  6029.  03h    BYTE    flags
  6030.         bit 0: tab handling
  6031.  04h    WORD    editing in prompt window?
  6032.  06h    DWORD    pointer to top line of prompt window message
  6033.  0Ah    WORD    length of top line of prompt
  6034.  0Ch    DWORD    pointer to second line of prompt window message
  6035.  10h    WORD    length of second line of prompt
  6036.  12h 80 BYTEs    workspace for editing
  6037.  62h  2 WORDs    line array needed for multi-line editing
  6038.  66h 36 BYTEs    multi-line edit record (see #2535)
  6039.  8Ah    WORD    displayable columns
  6040.  
  6041. Format of HP 95LX multi-line edit record:
  6042. Offset    Size    Description    (Table 2535)
  6043.  00h    DWORD    pointer to user-supplied edit buffer
  6044.  04h    WORD    length of edit buffer
  6045.  06h    WORD    current cursor position
  6046.  08h    WORD    starting row of edit area (-3 is topmost, 0 is first user line)
  6047.  0Ah    WORD    starting column of edit area
  6048.  0Ch    WORD    height of edit area
  6049.  0Eh    WORD    width of edit area
  6050.  10h    WORD    current top row (-3 is topmost, 0 is first user line)
  6051.  12h    WORD    number of rows displayable
  6052.  14h    BYTE    cursor column
  6053.  15h    BYTE    01h if buffer has been modified
  6054.  16h    BYTE    first displayable column (ticker fields only)
  6055.  17h    BYTE    01h if wordwrap enabled, FFh if ticker field
  6056.  18h    DWORD    pointer to array of line starts (at least one bigger than edit
  6057.           area is high)
  6058.  1Ch    BYTE    currently marking?
  6059.  1Dh    BYTE    flag
  6060.  1Eh    WORD    offset of mark start
  6061.  20h    WORD    offset of mark end (inclusive)
  6062.  22h    WORD    displayable columns
  6063. --------b-60----DI0401-----------------------
  6064. INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
  6065.     DI = 0401h
  6066.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6067.         DWORD    pointer to edit record (see #2534)
  6068.         DWORD    pointer to string to edit
  6069.         WORD    initial length of string being edited
  6070.         WORD    maximum length of edited string
  6071.         DWORD    pointer to first line of prompt
  6072.         WORD    length of first line
  6073.         DWORD    pointer to second line of prompt
  6074.         WORD    length of second line
  6075. Return: ???
  6076.     STACK unchanged
  6077. --------b-60----DI0402-----------------------
  6078. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
  6079.     DI = 0402h
  6080.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6081.         DWORD    pointer to edit record (see #2534)
  6082. Return: ???
  6083.     STACK unchanged
  6084. --------b-60----DI0403-----------------------
  6085. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
  6086.     DI = 0403h
  6087.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6088.         DWORD    pointer to edit record (see #2534)
  6089.         WORD    keystroke
  6090.         DWORD    pointer to WORD buffer for result code
  6091. Return: result code buffer filled with 0001h if editing complete
  6092.     STACK unchanged
  6093. --------b-60----DI0404-----------------------
  6094. INT 60 u - HP 95LX System Manager - "MDIT_INI"
  6095.     DI = 0404h
  6096.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6097.         DWORD    pointer to ???
  6098.         WORD    ???
  6099.         WORD    ???
  6100.         WORD    ???
  6101.         WORD    ???
  6102.         DWORD    pointer to ???
  6103.         WORD    ???
  6104.         WORD    ???
  6105.         WORD    ???
  6106.         DWORD    pointer to ???
  6107. Return: ???
  6108.     STACK unchanged
  6109. --------b-60----DI0405-----------------------
  6110. INT 60 u - HP 95LX System Manager - "MDIT_DIS"
  6111.     DI = 0405h
  6112.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6113.         DWORD    pointer to ???
  6114. Return: ???
  6115.     STACK unchanged
  6116. --------b-60----DI0406-----------------------
  6117. INT 60 u - HP 95LX System Manager - "MDIT_KEY"
  6118.     DI = 0406h
  6119.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6120.         DWORD    pointer to ???
  6121.         WORD    ???
  6122. Return: ???
  6123.     STACK unchanged
  6124. --------b-60----DI0407-----------------------
  6125. INT 60 u - HP 95LX System Manager - "MDIT_FIL"
  6126.     DI = 0407h
  6127.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6128.         DWORD    pointer to ???
  6129.         DWORD    pointer to ???
  6130. Return: ???
  6131.     STACK unchanged
  6132. --------b-60----DI0408-----------------------
  6133. INT 60 u - HP 95LX System Manager - "MDIT_MARK"
  6134.     DI = 0408h
  6135.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6136.         DWORD    pointer to ???
  6137. Return: ???
  6138.     STACK unchanged
  6139. --------b-60----DI0409-----------------------
  6140. INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
  6141.     DI = 0409h
  6142.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6143.         DWORD    pointer to ???
  6144. Return: ???
  6145.     STACK unchanged
  6146. --------b-60----DI040A-----------------------
  6147. INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
  6148.     DI = 040Ah
  6149.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6150.         DWORD    pointer to ???
  6151. Return: ???
  6152.     STACK unchanged
  6153. --------b-60----DI040B-----------------------
  6154. INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
  6155.     DI = 040Bh
  6156.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6157.         DWORD    pointer to ???
  6158.         DWORD    pointer to ???
  6159.         WORD    ???
  6160. Return: ???
  6161.     STACK unchanged
  6162. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  6163. --------b-60----DI0500-----------------------
  6164. INT 60 u - HP 95LX System Manager - OPEN FILE
  6165.     DI = 0500h
  6166.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6167.         DWORD    pointer to file state record (see #2536)
  6168.         DWORD    pointer to filename
  6169.         WORD    length of filename
  6170.         WORD    ???
  6171.         WORD    suppress buffering if nonzero
  6172. Return: AX = status
  6173.     STACK unchanged
  6174. SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
  6175.  
  6176. Format of HP 95LX file state record:
  6177. Offset    Size    Description    (Table 2536)
  6178.  00h    WORD    DOS file handle
  6179.  02h    WORD    state flags (see #2537)
  6180.  04h    DWORD    current DOS physical file offset (FFFFFFFFh if unknown)
  6181.  08h    DWORD    DOS file offset of start of buffer
  6182.  0Ch    DWORD    effective file offset as seen by caller
  6183.  10h    WORD    number of bytes in file buffer
  6184. ---buffered I/O only---
  6185.  12h 512 BYTEs    file buffer
  6186.  
  6187. Bitfields for HP 95LX file state flags:
  6188. Bit(s)    Description    (Table 2537)
  6189.  0    buffer contents valid
  6190.  1    buffer is dirty and must be written
  6191.  2    unbuffered I/O
  6192.  3    file is a character device
  6193. SeeAlso: #2536
  6194. --------b-60----DI0501-----------------------
  6195. INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
  6196.     DI = 0501h
  6197.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6198.         DWORD    pointer to file state record (see #2536)
  6199.         DWORD    pointer to filename
  6200.         WORD    length of filename
  6201.         WORD    ???
  6202.         WORD    suppress buffering if nonzero
  6203. Return: AX = status
  6204.     STACK unchanged
  6205. SeeAlso: INT 60/DI=0500h
  6206. --------b-60----DI0502-----------------------
  6207. INT 60 u - HP 95LX System Manager - CREATE NEW FILE
  6208.     DI = 0502h
  6209.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6210.         DWORD    pointer to file state record (see #2536)
  6211.         DWORD    pointer to filename
  6212.         WORD    length of filename
  6213.         WORD    ???
  6214.         WORD    suppress buffering if nonzero
  6215. Return: AX = status
  6216.     STACK unchanged
  6217. SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h
  6218. --------b-60----DI0503-----------------------
  6219. INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
  6220.     DI = 0503h
  6221.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6222.         DWORD    pointer to file state record (see #2536)
  6223.         DWORD    pointer to filename
  6224.         WORD    length of filename
  6225.         WORD    ???
  6226.         WORD    suppress buffering if nonzero
  6227. Return: AX = status
  6228.     STACK unchanged
  6229. SeeAlso: INT 60/DI=0502h
  6230. --------b-60----DI0504-----------------------
  6231. INT 60 u - HP 95LX System Manager - READ FROM FILE
  6232.     DI = 0504h
  6233.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6234.         DWORD    pointer to file state record (see #2536)
  6235.         DWORD    pointer to data buffer
  6236.         WORD    number of bytes to read
  6237.         DWORD    pointer to WORD in which to return actual bytes read
  6238. Return: ???
  6239.     STACK unchanged
  6240. SeeAlso: INT 60/DI=0505h
  6241. --------b-60----DI0505-----------------------
  6242. INT 60 - HP 95LX System Manager - WRITE TO FILE
  6243.     DI = 0505h
  6244.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6245.         DWORD    pointer to file state record (see #2536)
  6246.         DWORD    pointer to data
  6247.         WORD    length of data
  6248. Return: AX = status
  6249.     STACK unchanged
  6250. SeeAlso: INT 60/DI=0504h
  6251. --------b-60----DI0506-----------------------
  6252. INT 60 u - HP 95LX System Manager - SET FILE POSITION
  6253.     DI = 0506h
  6254.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6255.         DWORD    pointer to file state record (see #2536)
  6256.         2 WORDs    ???
  6257. Return: ???
  6258.     STACK unchanged
  6259. SeeAlso: INT 60/DI=0507h
  6260. --------b-60----DI0507-----------------------
  6261. INT 60 u - HP 95LX System Manager - GET FILE POSITION
  6262.     DI = 0507h "M_TELL"
  6263.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6264.         DWORD    pointer to file state record (see #2536)
  6265.         DWORD    pointer to DWORD buffer for file position???
  6266. Return: ???
  6267.     STACK unchanged
  6268. SeeAlso: INT 60/DI=0506h
  6269. --------b-60----DI0508-----------------------
  6270. INT 60 u - HP 95LX System Manager - CLOSE FILE
  6271.     DI = 0508h
  6272.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6273.         DWORD    pointer to file state record (see #2536)
  6274. Return: ???
  6275.     STACK unchanged
  6276. SeeAlso: INT 60/DI=0500h
  6277. --------b-60----DI0509-----------------------
  6278. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
  6279.     DI = 0509h
  6280.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6281.         DWORD    pointer to ???
  6282.         DWORD    pointer to ???
  6283.         WORD    ???
  6284.         WORD    ???
  6285. Return: ???
  6286.     STACK unchanged
  6287. --------b-60----DI050A-----------------------
  6288. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
  6289.     DI = 050Ah
  6290.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6291.         DWORD    pointer to ??? (see #2538)
  6292.         DWORD    pointer to ???
  6293. Return: ???
  6294.     STACK unchanged
  6295.  
  6296. Format of HP 95LX pattern match control block:
  6297. Offset    Size    Description    (Table 2538)
  6298.  00h 43 BYTEs    FindFirst data block (see #0967 at INT 21/AH=4Eh)
  6299.  2Bh 80 BYTEs    full path name
  6300.  7Bh    BYTE    offset of last component of filename
  6301.  7Ch    BYTE    DOS function number (4Eh or 4Fh)
  6302. --------b-60----DI050B-----------------------
  6303. INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
  6304.     DI = 050Bh
  6305.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6306.         DWORD    pointer to ???
  6307.         WORD    ???
  6308.         WORD    ???
  6309.         DWORD    pointer to ???
  6310. Return: ??? = result (see #2539)
  6311.     ???
  6312.     STACK unchanged
  6313.  
  6314. (Table 2539)
  6315. Values returned by HP 95LX System Manager:
  6316.  0000h    nonexistent
  6317.  0001h    file
  6318.  0002h    directory
  6319.  0003h    character device
  6320. --------b-60----DI050C-----------------------
  6321. INT 60 u - HP 95LX System Manager - DELETE FILE
  6322.     DI = 050Ch "M_DELETE"
  6323.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6324.         DWORD    pointer to ???
  6325.         WORD    ???
  6326.         WORD    ???
  6327. Return: ???
  6328.     STACK unchanged
  6329. --------b-60----DI050D-----------------------
  6330. INT 60 u - HP 95LX System Manager - RENAME FILE
  6331.     DI = 050Dh
  6332.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6333.         DWORD    pointer to ???
  6334.         WORD    ???
  6335.         WORD    ???
  6336.         DWORD    pointer to ???
  6337.         WORD    ???
  6338.         WORD    ???
  6339. Return: ???
  6340.     STACK unchanged
  6341. --------b-60----DI050E-----------------------
  6342. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
  6343.     DI = 050Eh
  6344.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6345.         WORD    ???
  6346.         DWORD    pointer to ???
  6347.         DWORD    pointer to ???
  6348. Return: ???
  6349.     STACK unchanged
  6350. --------b-60----DI050F-----------------------
  6351. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
  6352.     DI = 050Fh
  6353.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6354.         DWORD    pointer to ???
  6355.         WORD    ???
  6356. Return: ???
  6357.     STACK unchanged
  6358. --------b-60----DI0510-----------------------
  6359. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
  6360.     DI = 0510h
  6361.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6362.         DWORD    pointer to ???
  6363.         DWORD    pointer to ???
  6364. Return: ???
  6365.     STACK unchanged
  6366. --------b-60----DI0511-----------------------
  6367. INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
  6368.     DI = 0511h
  6369.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6370.         DWORD    pointer to ???
  6371.         WORD    ???
  6372.         WORD    ???
  6373. Return: ???
  6374.     STACK unchanged
  6375. SeeAlso: INT 21/AH=39h,INT 60/DI=0512h
  6376. --------b-60----DI0512-----------------------
  6377. INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
  6378.     DI = 0512h
  6379.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6380.         DWORD    pointer to ???
  6381.         WORD    ???
  6382.         WORD    ???
  6383. Return: ???
  6384.     STACK unchanged
  6385. SeeAlso: INT 21/AH=3Ah,INT 60/DI=0511h
  6386. --------b-60----DI0513-----------------------
  6387. INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
  6388.     DI = 0513h
  6389.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6390.         DWORD    pointer to ??? buffer for current drive
  6391. Return: ???
  6392.     STACK unchanged
  6393. SeeAlso: INT 21/AH=19h,INT 60/DI=0514h
  6394. --------b-60----DI0514-----------------------
  6395. INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
  6396.     DI = 0514h
  6397.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6398.         WORD    new drive
  6399. Return: ???
  6400.     STACK unchanged
  6401. SeeAlso: INT 21/AH=0Eh"DOS 1+",INT 60/DI=0513h
  6402. --------b-60----DI0515-----------------------
  6403. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
  6404.     DI = 0515h
  6405.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6406.         DWORD    pointer to ???
  6407.         DWORD    pointer to ???
  6408. Return: ???
  6409.     STACK unchanged
  6410. --------b-60----DI0516-----------------------
  6411. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
  6412.     DI = 0516h
  6413.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6414.         DWORD    pointer to ???
  6415. Return: ???
  6416.     STACK unchanged
  6417. --------b-60----DI0517-----------------------
  6418. INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
  6419.     DI = 0517h
  6420.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6421.         DWORD    pointer to ???
  6422.         WORD    ???
  6423.         WORD    ???
  6424.         DWORD    pointer to ??? buffer for file's attributes???
  6425. Return: ???
  6426.     STACK unchanged
  6427. SeeAlso: INT 21/AX=4300h,INT 60/DI=0518h
  6428. --------b-60----DI0518-----------------------
  6429. INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
  6430.     DI = 0518h
  6431.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6432.         DWORD    pointer to ???
  6433.         WORD    ???
  6434.         WORD    ???
  6435.         WORD    new attributes???
  6436. Return: ???
  6437.     STACK unchanged
  6438. SeeAlso: INT 21/AX=4301h,INT 60/DI=0517h
  6439. --------b-60----DI0519-----------------------
  6440. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
  6441.     DI = 0519h
  6442.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6443.         DWORD    pointer to ???
  6444.         DWORD    pointer to ???
  6445.         WORD    ???
  6446.         WORD    ???
  6447.         WORD    ???
  6448.         WORD    ???
  6449.         WORD    ???
  6450. Return: ???
  6451.     STACK unchanged
  6452. --------b-60----DI051A-----------------------
  6453. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
  6454.     DI = 051Ah
  6455.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6456.         DWORD    pointer to ???
  6457.         DWORD    pointer to ???
  6458. Return: ???
  6459.     STACK unchanged
  6460. --------b-60----DI051B-----------------------
  6461. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
  6462.     DI = 051Bh
  6463.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6464.         DWORD    pointer to ???
  6465.         DWORD    pointer to ???
  6466. Return: ???
  6467.     STACK unchanged
  6468. --------b-60----DI051C-----------------------
  6469. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
  6470.     DI = 051Ch
  6471.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6472.         DWORD    pointer to ???
  6473.         WORD    ???
  6474. Return: ???
  6475.     STACK unchanged
  6476. --------b-60----DI0600-----------------------
  6477. INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
  6478.     DI = 0600h
  6479.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6480. Return: ???
  6481.     STACK unchanged
  6482. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"
  6483. --------b-60----DI0601-----------------------
  6484. INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
  6485.     DI = 0601h
  6486.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6487. Return: never
  6488.     STACK unchanged
  6489. SeeAlso: INT 21/AH=4Ch,INT 2F/AX=1122h,INT 60/DI=0600h
  6490. --------b-60----DI0602-----------------------
  6491. INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
  6492.     DI = 0602h
  6493.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6494. Return: ???
  6495.     STACK unchanged
  6496. SeeAlso: INT 15/AX=101Bh,INT 2F/AX=1681h,INT 60/DI=0603h
  6497. --------b-60----DI0603-----------------------
  6498. INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
  6499.     DI = 0603h
  6500.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6501. Return: ???
  6502.     STACK unchanged
  6503. SeeAlso: INT 15/AX=101Ch,INT 2F/AX=1682h,INT 60/DI=0602h
  6504. --------b-60----DI0604-----------------------
  6505. INT 60 u - HP 95LX System Manager - "M_SPAWN"
  6506.     DI = 0604h
  6507.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6508.         DWORD    pointer to ???
  6509.         WORD    ???
  6510.         WORD    ???
  6511.         DWORD    pointer to ???
  6512. Return: ???
  6513.     STACK unchanged
  6514. SeeAlso: INT 21/AH=4Bh
  6515. --------b-60----DI0605-----------------------
  6516. INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
  6517.     DI = 0605h
  6518.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6519. Return: ???
  6520.     STACK unchanged
  6521. --------b-60----DI0606-----------------------
  6522. INT 60 u - HP 95LX System Manager - "M_REBOOT"
  6523.     DI = 0606h
  6524.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6525. Return: ???
  6526.     STACK unchanged
  6527. SeeAlso: INT 14/AH=17h"FOSSIL",INT 19
  6528. --------b-60----DI0607-----------------------
  6529. INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
  6530.     DI = 0607h
  6531.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6532.         DWORD    pointer to ???
  6533.         WORD    ???
  6534.         DWORD    pointer to ???
  6535.         WORD    ???
  6536. Return: ???
  6537.     STACK unchanged
  6538. --------b-60----DI0608-----------------------
  6539. INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
  6540.     DI = 0608h
  6541.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6542.         DWORD    pointer to ???
  6543. Return: ???
  6544.     STACK unchanged
  6545. --------b-60----DI0609-----------------------
  6546. INT 60 u - HP 95LX System Manager - "M_APP_NAME"
  6547.     DI = 0609h
  6548.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6549.         DWORD    pointer to ???
  6550. Return: DX:AX -> ???
  6551.     STACK unchanged
  6552. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  6553. --------b-60----DI0700-----------------------
  6554. INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
  6555.     DI = 0700h
  6556.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6557. Return: ??? = error code (see #2540)
  6558.     ???
  6559.     STACK unchanged
  6560. SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
  6561.  
  6562. (Table 2540)
  6563. Values for HP 95LX error code:
  6564.  0000h    successful
  6565.  FFF8h    transfer request out of bounds
  6566.  FFF9h    no such representation
  6567.  FFFAh    no representation open
  6568.  FFFBh    a representation is already open
  6569.  FFFCh    representation already exists
  6570.  FFFDh    heap allocation failure
  6571.  FFFEh    clipboard not open
  6572.  FFFFh    clipboard access denied
  6573. --------b-60----DI0701-----------------------
  6574. INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
  6575.     DI = 0701h
  6576.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6577. Return: ???
  6578.     STACK unchanged
  6579. SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h
  6580. --------b-60----DI0702-----------------------
  6581. INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
  6582.     DI = 0702h
  6583.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6584.         DWORD    pointer to ???
  6585. Return: ???
  6586.     STACK unchanged
  6587. SeeAlso: INT 60/DI=0700h
  6588. --------b-60----DI0704-----------------------
  6589. INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
  6590.     DI = 0704h
  6591.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6592.         DWORD    pointer to ???
  6593. Return: ???
  6594.     STACK unchanged
  6595. SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h
  6596. --------b-60----DI0705-----------------------
  6597. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
  6598.     DI = 0705h
  6599.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6600. Return: ???
  6601.     STACK unchanged
  6602. SeeAlso: INT 60/DI=0704h
  6603. --------b-60----DI0706-----------------------
  6604. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
  6605.     DI = 0706h
  6606.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6607.         WORD    ???
  6608.         DWORD    pointer to ???
  6609.         DWORD    pointer to ???
  6610. Return: ???
  6611.     STACK unchanged
  6612. SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h
  6613. --------b-60----DI0707-----------------------
  6614. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
  6615.     DI = 0707h
  6616.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6617.         DWORD    pointer to ???
  6618.         DWORD    pointer to ???
  6619.         DWORD    pointer to ???
  6620. Return: ???
  6621.     STACK unchanged
  6622. SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h
  6623. --------b-60----DI0708-----------------------
  6624. INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
  6625.     DI = 0708h
  6626.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6627.         DWORD    pointer to data to be written???
  6628.         WORD    length of data???
  6629. Return: ???
  6630.     STACK unchanged
  6631. SeeAlso: INT 60/DI=0709h
  6632. --------b-60----DI0709-----------------------
  6633. INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
  6634.     DI = 0709h
  6635.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6636.         WORD    ???
  6637.         WORD    ???
  6638.         DWORD    pointer to buffer for data???
  6639.         WORD    length of buffer???
  6640. Return: ???
  6641.     STACK unchanged
  6642. SeeAlso: INT 60/DI=0708h
  6643. --------b-60----DI0800-----------------------
  6644. INT 60 u - HP 95LX System Manager - BEEP
  6645.     DI = 0800h
  6646.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6647. Return: ???
  6648.     STACK unchanged
  6649. SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h
  6650. --------b-60----DI0801-----------------------
  6651. INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
  6652.     DI = 0801h
  6653.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6654. Return: ???
  6655.     STACK unchanged
  6656. SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h
  6657. --------b-60----DI0802-----------------------
  6658. INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
  6659.     DI = 0802h
  6660.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6661.         WORD    pattern number (00h-06h)
  6662. Return: ???
  6663.     STACK unchanged
  6664. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h
  6665. --------b-60----DI0803-----------------------
  6666. INT 60 u - HP 95LX System Manager - TURN OFF SOUND
  6667.     DI = 0803h
  6668.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6669. Return: ???
  6670.     STACK unchanged
  6671. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h
  6672. --------b-60----DI0900-----------------------
  6673. INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
  6674.     DI = 0900h
  6675.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6676.         WORD    size of block in bytes
  6677. Return: AX -> memory block
  6678.     STACK unchanged
  6679. Note:    System Manager-compliant applications are always small-model (64K code,
  6680.       64K data)
  6681. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h
  6682. --------b-60----DI0902-----------------------
  6683. INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
  6684.     DI = 0902h
  6685.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6686.         WORD    offset of memory block???
  6687. Return: ???
  6688.     STACK unchanged
  6689. Note:    System Manager-compliant applications are always small-model (64K code,
  6690.       64K data)
  6691. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  6692. --------b-60----DI0903-----------------------
  6693. INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
  6694.     DI = 0903h
  6695.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6696.         WORD    size of block in bytes???
  6697. Return: AX -> memory block???
  6698.     STACK unchanged
  6699. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  6700. --------b-60----DI0904-----------------------
  6701. INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
  6702.     DI = 0904h
  6703.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6704.         WORD    segment of memory block???
  6705. Return: AX -> ???
  6706.     STACK unchanged
  6707. SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h
  6708. --------b-60----DI0B00-----------------------
  6709. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
  6710.     DI = 0B00h
  6711.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6712.         DWORD    pointer to ???
  6713. Return: ???
  6714.     STACK unchanged
  6715. --------b-60----DI0B01-----------------------
  6716. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
  6717.     DI = 0B01h
  6718.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6719.         DWORD    pointer to ???
  6720. Return: ???
  6721.     STACK unchanged
  6722. --------b-60----DI0B02-----------------------
  6723. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
  6724.     DI = 0B02h
  6725.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6726.         DWORD    pointer to ???
  6727. Return: ???
  6728.     STACK unchanged
  6729. --------b-60----DI0B03-----------------------
  6730. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
  6731.     DI = 0B03h
  6732.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6733.         WORD    ???
  6734. Return: ???
  6735.     STACK unchanged
  6736. --------b-60----DI0B04-----------------------
  6737. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
  6738.     DI = 0B04h
  6739.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6740.         DWORD    pointer to alarm record??? (see #2541)
  6741.         WORD    ???
  6742. Return: ???
  6743.     STACK unchanged
  6744.  
  6745. Format of HP 95LX alarm record:
  6746. Offset    Size    Description    (Table 2541)
  6747.  00h    BYTE    hour
  6748.  01h    BYTE    minute
  6749.  02h    BYTE    second
  6750.  03h    BYTE    unused padding
  6751.  04h    WORD    rescheduling interval, in seconds
  6752.  06h    BYTE    are seconds significant?
  6753.  07h    BYTE    alarm sound
  6754.  08h 40 BYTEs    message displayed when alarm activates
  6755.  30h    BYTE    task ID of owner
  6756.  31h    BYTE    application's own use for sub-class
  6757.  32h  4 BYTEs    application's own use for private data
  6758. --------b-60----DI0B05-----------------------
  6759. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
  6760.     DI = 0B05h
  6761.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6762.         DWORD    pointer to ???
  6763. Return: ???
  6764.     STACK unchanged
  6765. --------b-60----DI0B06-----------------------
  6766. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
  6767.     DI = 0B06h
  6768.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6769.         DWORD    pointer to ???
  6770.         DWORD    pointer to ???
  6771.         DWORD    pointer to ???
  6772. Return: ???
  6773.     STACK unchanged
  6774. --------b-60----DI0B07-----------------------
  6775. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
  6776.     DI = 0B07h
  6777.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6778.         DWORD    pointer to ???
  6779. Return: ???
  6780.     STACK unchanged
  6781. --------b-60----DI0B08-----------------------
  6782. INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
  6783.     DI = 0B08h
  6784.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6785.         WORD    timestamp format (see #2542)
  6786.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  6787.         WORD    column
  6788. Return: ???
  6789.     STACK unchanged
  6790.  
  6791. Bitfields for HP 95LX timestamp format:
  6792. Bit(s)    Description    (Table 2542)
  6793.  1-0    timestamp components
  6794.     00 date only
  6795.     01 time only
  6796.     10 date and time
  6797.     11 day and date
  6798.  4    supply am/pm
  6799.  5    supply seconds
  6800.  6    show year
  6801.  7    four-digit year
  6802. --------b-60----DI0B09-----------------------
  6803. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
  6804.     DI = 0B09h
  6805.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6806.         DWORD    pointer to ??? (see #2543)
  6807.         DWORD    pointer to ???
  6808. Return: ???
  6809.     STACK unchanged
  6810. SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
  6811.  
  6812. Format of HP 95LX system settings:
  6813. Offset    Size    Description    (Table 2543)
  6814.  00h    WORD    country code
  6815.  02h    WORD    speaker volume (00h-03h or FFh for off)
  6816.  04h    WORD    contrast level (00h-0Fh)
  6817.  06h    WORD    week start (00h Sunday, 01h Monday)
  6818.  08h    WORD    punctuation format (see #2544)
  6819.  0Ah    WORD    two-character language code (only 5355h = "US" byte-swapped)
  6820.  0Ch    WORD    current date format (see #2545)
  6821.  0Eh    WORD    current time format (see #2546)
  6822.  10h    WORD    collating sequence
  6823.         00h numbers first, 01h letters first, 02h ASCII
  6824.  12h 80 BYTEs    name of picture file
  6825.  62h 30 BYTEs    name
  6826.  80h 30 BYTEs    title
  6827.  9Eh 28 BYTEs    company name
  6828.  BAh    WORD    number of languages
  6829.  BCh  6 BYTEs    available languages
  6830.  C2h 66 BYTEs    language menu
  6831. 104h  2 BYTEs    ASCIZ date separator
  6832. 106h  2 BYTEs    ASCIZ time separator
  6833. 108h    BYTE    date order
  6834. 109h    BYTE    use 24 hour time?
  6835. 10Ah 16 BYTEs    currency string
  6836. 11Ah    WORD    currency string position (00h prefix, 01h suffix)
  6837. 11Ch    WORD    keyboard (see #2547)
  6838. 11Eh    WORD    printer baud rate
  6839.         00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
  6840. 120h    WORD    printer driver code
  6841.         00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
  6842. 122h    WORD    printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
  6843. 124h    WORD    system manager interrupt (60h by default)
  6844. 126h    WORD    code page (01h CP850, 02h CP437)
  6845. 128h    WORD    active exit key
  6846. 12Ah    WORD    active menu key
  6847. 12Ch    WORD    active CHAR key toggle
  6848. 12Eh  6 BYTEs    alarm
  6849.  
  6850. (Table 2544)
  6851. Values for HP 95LX punctuation format:
  6852.  code    decimal arg    thousands
  6853.  00h    .    ,    ,
  6854.  01h    ,    .    .
  6855.  02h    .    ;    ;
  6856.  03h    ,    ;    .
  6857.  04h    .    ,    " "
  6858.  05h    ,    .    " "
  6859.  06h    .    ;    " "
  6860.  07h    ,    ;    " "
  6861.  
  6862. (Table 2545)
  6863. Values for HP 95LX current date format:
  6864.  00h    dd-mmm-yy
  6865.  01h    dd-mmm
  6866.  02h    mmm-yy
  6867.  03h    mm/dd/yy
  6868.  04h    dd/mm/yy
  6869.  05h    dd.mm.yy
  6870.  06h    yy-mm-dd
  6871.  07h    mm/dd
  6872.  08h    dd/mm
  6873.  09h    dd.mm
  6874.  0Ah    mm-dd
  6875.  
  6876. (Table 2546)
  6877. Values for HP 95LX current time format:
  6878.  00h    HH:MM:SS am/pm
  6879.  01h    HH:MM am/pm
  6880.  02h    HH:MM:SS
  6881.  03h    HH.MM.SS
  6882.  04h    HH,MM,SS
  6883.  05h    HHhMMmSSs
  6884.  06h    HH:MM
  6885.  07h    HH.MM
  6886.  08h    HH,MM
  6887.  09h    HHhMMm
  6888.  
  6889. (Table 2547)
  6890. Values for HP 95LX keyboard layout:
  6891.  0001h    Belgium
  6892.  0002h    French Canadian
  6893.  0004h    Denmark
  6894.  0008h    Finland
  6895.  0010h    French
  6896.  0020h    Finland
  6897.  0040h    Italy
  6898.  0080h    Netherlands
  6899.  0100h    Norway
  6900.  0200h    Portugal
  6901.  0400h    Spain
  6902.  0800h    Sweden
  6903.  1000h    Swiss French
  6904.  2000h    Swiss German
  6905.  4000h    United Kingdom
  6906.  8000h    USA
  6907. --------b-60----DI0B0A-----------------------
  6908. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
  6909.     DI = 0B0Ah
  6910.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6911.         DWORD    pointer to ???
  6912.         DWORD    pointer to ???
  6913. Return: ???
  6914.     STACK unchanged
  6915. SeeAlso: INT 60/DI=0B09h
  6916. --------b-60----DI0B0B-----------------------
  6917. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
  6918.     DI = 0B0Bh
  6919.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6920.         DWORD    pointer to ???
  6921. Return: ???
  6922.     STACK unchanged
  6923. SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh
  6924. --------b-60----DI0B0C-----------------------
  6925. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
  6926.     DI = 0B0Ch
  6927.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6928.         DWORD    pointer to ???
  6929. Return: ???
  6930.     STACK unchanged
  6931. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh
  6932. --------b-60----DI0B0D-----------------------
  6933. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
  6934.     DI = 0B0Dh
  6935.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6936.         DWORD    pointer to ???
  6937.         DWORD    pointer to ???
  6938.         DWORD    pointer to ???
  6939. Return: ???
  6940.     STACK unchanged
  6941. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch
  6942. --------b-60----DI0B0E-----------------------
  6943. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
  6944.     DI = 0B0Eh
  6945.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6946.         WORD    ???
  6947.         WORD    ???
  6948.         WORD    ???
  6949.         DWORD    pointer to ???
  6950.         DWORD    pointer to ???
  6951. Return: DX:AX -> ???
  6952.     STACK unchanged
  6953. --------b-60----DI0B0F-----------------------
  6954. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
  6955.     DI = 0B0Fh
  6956.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6957. Return: DX:AX -> system settings record (see #2543)
  6958.     STACK unchanged
  6959. SeeAlso: INT 60/DI=0B09h
  6960. --------b-60----DI0B10-----------------------
  6961. INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
  6962.     DI = 0B10h
  6963.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6964.         WORD    ???
  6965.         DWORD    pointer to ???
  6966.         DWORD    pointer to ???
  6967. Return: ???
  6968.     STACK unchanged
  6969. --------b-60----DI0B11-----------------------
  6970. INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
  6971.     DI = 0B11h
  6972.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6973.         WORD    ???
  6974.         DWORD    pointer to ???
  6975.         DWORD    pointer to ???
  6976. Return: ???
  6977.     STACK unchanged
  6978. --------b-60----DI0B12-----------------------
  6979. INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
  6980.     DI = 0B12h
  6981.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6982.         WORD    new parsing rule (see #2548)
  6983. Return: ???
  6984.     STACK unchanged
  6985. SeeAlso: INT 60/DI=0B13h
  6986.  
  6987. (Table 2548)
  6988. Values for HP 95LX date parsing rule:
  6989.  01h    day-month-year
  6990.  02h    month-day-year
  6991.  03h    year-month-day
  6992.  04h    "DMYO"
  6993.  05h    "MDYO"
  6994.  OR with 08h to get any year
  6995. --------b-60----DI0B13-----------------------
  6996. INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
  6997.     DI = 0B13h
  6998.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6999.         WORD    new parsing rule (see #2549)
  7000. Return: ???
  7001.     STACK unchanged
  7002. SeeAlso: INT 60/DI=0B12h
  7003.  
  7004. (Table 2549)
  7005. Values for HP 95LX time parsing rule:
  7006.  01h    HH:MM:SS (am/pm)
  7007.  02h    HH:MM:SS (24hr)
  7008.  03h    HHMM:SS (24hr)
  7009.  04h    HH:MM:SS.hh (24hr)
  7010.  05h    HH:MM (am/pm)
  7011.  06h    HH:MM (24hr)
  7012.  07h    HHMM (24hr)
  7013. --------b-60----DI0B14-----------------------
  7014. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
  7015.     DI = 0B14h
  7016.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7017. Return: ???
  7018.     STACK unchanged
  7019. --------b-60----DI0B15-----------------------
  7020. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
  7021.     DI = 0B15h
  7022.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7023.         WORD    ???
  7024. Return: ???
  7025.     STACK unchanged
  7026. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7027. --------b-60----DI0C00-----------------------
  7028. INT 60 u - HP 95LX System Manager - OPEN PRINTER
  7029.     DI = 0C00h
  7030.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7031. Return: ???
  7032.     STACK unchanged
  7033. SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h
  7034. --------b-60----DI0C01-----------------------
  7035. INT 60 u - HP 95LX System Manager - CLOSE PRINTER
  7036.     DI = 0C01h
  7037.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7038. Return: ???
  7039.     STACK unchanged
  7040. Note:    relinquishes control of printer
  7041. SeeAlso: INT 60/DI=0C00h
  7042. --------b-60----DI0C02-----------------------
  7043. INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
  7044.     DI = 0C02h
  7045.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7046.         DWORD    pointer to data to be written
  7047.         WORD    length of data
  7048. Return: ???
  7049.     STACK unchanged
  7050. SeeAlso: INT 60/DI=0C00h
  7051. --------b-60----DI0C03-----------------------
  7052. INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
  7053.     DI = 0C03h
  7054.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7055. Return: ???
  7056.     STACK unchanged
  7057. SeeAlso: INT 60/DI=0C00h
  7058. --------b-60----DI0C04-----------------------
  7059. INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
  7060.     DI = 0C04h
  7061.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7062.         WORD    ???
  7063.         DWORD    pointer to ???
  7064. Return: ???
  7065.     STACK unchanged
  7066. --------b-60----DI0C05-----------------------
  7067. INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
  7068.     DI = 0C05h
  7069.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7070.         WORD    ???
  7071.         DWORD    pointer to ???
  7072. Return: ???
  7073.     STACK unchanged
  7074. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7075. --------b-60----DI0E00-----------------------
  7076. INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
  7077.     DI = 0E00h
  7078.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7079.         DWORD    pointer to ???
  7080. Return: ???
  7081.     STACK unchanged
  7082. SeeAlso: #2550,INT 60/DI=0E01h,INT 60/DI=0E02h
  7083.  
  7084. (Table 2550)
  7085. Values for HP 95LX error code:
  7086.  0000h    successful
  7087.  FFF1h    "E_BUSY"
  7088.  FFF2h    timeout
  7089.  FFF3h    framing error
  7090.  FFF4h    parity error
  7091.  FFF5h    overrun error
  7092.  FFF6h    "E_EMPTY"
  7093.  FFF7h    "E_CONECT"
  7094.  FFF8h    not open
  7095.  FFF9h    out of memory
  7096.  FFFAh    buffer overflow
  7097.  FFFBh    "E_NOFIT"
  7098.  FFFCh    unsupported
  7099.  FFFDh    "E_IVOPR"
  7100.  FFFEh    "E_IVCHN"
  7101.  FFFFh    "E_REOPEN"
  7102. --------b-60----DI0E01-----------------------
  7103. INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
  7104.     DI = 0E01h
  7105.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7106.         DWORD    pointer to WORD buffer for comm channel handle
  7107.         WORD    communications line number (01h-04h)
  7108. Return: ???
  7109.     STACK unchanged
  7110. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h
  7111. --------b-60----DI0E02-----------------------
  7112. INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
  7113.     DI = 0E02h
  7114.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7115.         WORD    comm channel handle
  7116. Return: ???
  7117.     STACK unchanged
  7118. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h
  7119. --------b-60----DI0E03-----------------------
  7120. INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
  7121.     DI = 0E03h
  7122.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7123.         WORD    ???
  7124. Return: ???
  7125.     STACK unchanged
  7126. --------b-60----DI0E04-----------------------
  7127. INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
  7128.     DI = 0E04h
  7129.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7130.         WORD    ???
  7131.         WORD    ???
  7132. Return: ???
  7133.     STACK unchanged
  7134. --------b-60----DI0E05-----------------------
  7135. INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
  7136.     DI = 0E05h
  7137.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7138.         WORD    ???
  7139.         DWORD    pointer to ???
  7140. Return: ???
  7141.     STACK unchanged
  7142. --------b-60----DI0E06-----------------------
  7143. INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
  7144.     DI = 0E06h
  7145.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7146.         WORD    comm channel handle
  7147.         WORD    reset options (see #2551)
  7148. Return: ???
  7149.     STACK unchanged
  7150.  
  7151. Bitfields for HP 95LX reset options:
  7152. Bit(s)    Description    (Table 2551)
  7153.  0    reset line
  7154.  1    flush transmit buffer
  7155.  2    flush receive buffer
  7156.  3    reset modem
  7157.  4    reset receiver's ^S state
  7158.  5    reset transmitter's ^S state
  7159. --------b-60----DI0E07-----------------------
  7160. INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
  7161.     DI = 0E07h
  7162.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7163.         WORD    ???
  7164. Return: ???
  7165.     STACK unchanged
  7166. --------b-60----DI0E08-----------------------
  7167. INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
  7168.     DI = 0E08h
  7169.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7170.         WORD    comm channel handle
  7171.         DWORD    pointer to data to be sent
  7172.         WORD    option flags
  7173.             bit 0: send partial buffer
  7174.             bit 1: turn on receiver after sending
  7175.         DWORD    pointer to WORD containing length of data to be sent
  7176. Return: length WORD updated to contain number of bytes actually sent???
  7177.     STACK unchanged
  7178. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  7179. --------b-60----DI0E09-----------------------
  7180. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
  7181.     DI = 0E09h
  7182.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7183.         WORD    ???
  7184.         DWORD    pointer to ??? WORD
  7185.         DWORD    pointer to ??? WORD
  7186. Return: ???
  7187.     STACK unchanged
  7188. SeeAlso: INT 60/DI=0E0Ah
  7189. --------b-60----DI0E0A-----------------------
  7190. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
  7191.     DI = 0E0Ah
  7192.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7193.         WORD    comm channel handle
  7194.         DWORD    pointer to WORD to get receive buffer size
  7195.         DWORD    pointer to WORD to get free bytes in receive buffer
  7196. Return: ???
  7197.     STACK unchanged
  7198. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  7199. --------b-60----DI0E0B-----------------------
  7200. INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
  7201.     DI = 0E0Bh
  7202.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7203.         WORD    comm channel handle
  7204.         DWORD    pointer to data buffer
  7205.         DWORD    pointer to WORD (call) length of data buffer
  7206.                     (ret) number of bytes received
  7207. Return: ???
  7208.     STACK unchanged
  7209. SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah
  7210. --------b-60----DI0E0C-----------------------
  7211. INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
  7212.     DI = 0E0Ch
  7213.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7214.         WORD    ???
  7215.         DWORD    pointer to ???
  7216.         WORD    ???
  7217. Return: ???
  7218.     STACK unchanged
  7219. --------b-60----DI0E0D-----------------------
  7220. INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
  7221.     DI = 0E0Dh
  7222.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7223.         WORD    ???
  7224.         DWORD    pointer to ???
  7225.         WORD    ???
  7226. Return: ???
  7227.     STACK unchanged
  7228. --------b-60----DI0E0E-----------------------
  7229. INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
  7230.     DI = 0E0Eh
  7231.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7232.         WORD    ???
  7233.         WORD    ???
  7234. Return: ???
  7235.     STACK unchanged
  7236. --------b-60----DI0E0F-----------------------
  7237. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
  7238.     DI = 0E0Fh
  7239.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7240.         WORD    ???
  7241. Return: ???
  7242.     STACK unchanged
  7243. --------b-60----DI0E10-----------------------
  7244. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
  7245.     DI = 0E10h
  7246.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7247.         WORD    ???
  7248. Return: ???
  7249.     STACK unchanged
  7250. --------b-60----DI0E11-----------------------
  7251. INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
  7252.     DI = 0E11h
  7253.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7254.         WORD    ???
  7255.         WORD    ???
  7256. Return: ???
  7257.     STACK unchanged
  7258. --------b-60----DI0E12-----------------------
  7259. INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
  7260.     DI = 0E12h
  7261.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7262.         WORD    ???
  7263. Return: ???
  7264.     STACK unchanged
  7265. --------b-60----DI0E13-----------------------
  7266. INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
  7267.     DI = 0E13h
  7268.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7269.         WORD    ???
  7270. Return: ???
  7271.     STACK unchanged
  7272. --------b-60----DI0E14-----------------------
  7273. INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
  7274.     DI = 0E14h
  7275.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7276.         WORD    comm channel handle
  7277.         DWORD    pointer to communications settings (see #2552)
  7278. Return: ???
  7279.     STACK unchanged
  7280. SeeAlso: INT 60/DI=0E15h
  7281.  
  7282. Format of HP 95LX communications settings:
  7283. Offset    Size    Description    (Table 2552)
  7284.  00h    BYTE    dial type ('T' tone, 'P' pulse)
  7285.  01h    WORD    baud rate divisor (115200/baud_rate)
  7286.  03h    BYTE    parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
  7287.  04h    BYTE    stop bits (00h one, 04h two)
  7288.  05h    BYTE    data bits - 5
  7289.  06h    BYTE    software handshake
  7290.         01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
  7291.  07h    BYTE    infrared (01h off, 02h on)
  7292.  08h    BYTE    duplex (01h half, 02h full)
  7293.  09h    BYTE    echo (01h echo, 02h no echo)
  7294. --------b-60----DI0E15-----------------------
  7295. INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
  7296.     DI = 0E15h
  7297.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7298.         WORD    ???
  7299.         DWORD    pointer to buffer for settings (see #2552)
  7300. Return: ???
  7301.     STACK unchanged
  7302. SeeAlso: INT 60/DI=0E14h
  7303. --------b-60----DI0E16-----------------------
  7304. INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
  7305.     DI = 0E16h
  7306.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7307.         WORD    ???
  7308.         WORD    ???
  7309.         WORD    ???
  7310.         WORD    ???
  7311.         WORD    ???
  7312. Return: ???
  7313.     STACK unchanged
  7314. --------b-60----DI0E17-----------------------
  7315. INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
  7316.     DI = 0E17h
  7317.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7318.         WORD    ???
  7319. Return: ???
  7320.     STACK unchanged
  7321. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7322. --------b-60----DI0F00-----------------------
  7323. INT 60 u - HP 95LX System Manager - "M_ERRMSG"
  7324.     DI = 0F00h
  7325.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7326.         WORD    ???
  7327.         DWORD    pointer to ???
  7328.         WORD    ???
  7329.         DWORD    pointer to ???
  7330. Return: ???
  7331.     STACK unchanged
  7332. --------b-60----DI0F01-----------------------
  7333. INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
  7334.     DI = 0F01h
  7335.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7336.         DWORD    pointer to ASCIZ title string
  7337. Return: ???
  7338.     STACK unchanged
  7339. --------b-60----DI0F02-----------------------
  7340. INT 60 u - HP 95LX System Manager - "SHOWNAME"
  7341.     DI = 0F02h
  7342.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7343.         DWORD    pointer to ???
  7344. Return: ???
  7345.     STACK unchanged
  7346. --------b-60----DI0F03-----------------------
  7347. INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
  7348.     DI = 0F03h
  7349.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7350.         DWORD    pointer to first line of message
  7351.         WORD    length of first line
  7352.         DWORD    pointer to second line of message
  7353.         WORD    length of second line
  7354. Return: ???
  7355.     STACK unchanged
  7356. SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h
  7357. --------b-60----DI0F04-----------------------
  7358. INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
  7359.     DI = 0F04h
  7360.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7361. Return: ???
  7362.     STACK unchanged
  7363. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h
  7364. --------b-60----DI0F05-----------------------
  7365. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
  7366.     DI = 0F05h
  7367.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7368. Return: DX:AX -> ???
  7369.     STACK unchanged
  7370. --------b-60----DI0F06-----------------------
  7371. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
  7372.     DI = 0F06h
  7373.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7374. Return: DX:AX -> ???
  7375.     STACK unchanged
  7376. --------b-60----DI0F07-----------------------
  7377. INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
  7378.     DI = 0F07h
  7379.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7380. Return: DX:AX -> ???
  7381.     STACK unchanged
  7382. --------b-60----DI0F08-----------------------
  7383. INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
  7384.     DI = 0F08h
  7385.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7386.         ???
  7387. Return: ???
  7388.     STACK unchanged
  7389. --------b-60----DI0F09-----------------------
  7390. INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
  7391.     DI = 0F09h
  7392.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7393.         DWORD    pointer to first line of message
  7394.         WORD    length of first line
  7395.         DWORD    pointer to second line of message
  7396.         WORD    length of second line
  7397.         DWORD    pointer to third line of message
  7398.         WORD    length of third line
  7399. Return: ???
  7400.     STACK unchanged
  7401. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h
  7402. --------b-60----DI0F0A-----------------------
  7403. INT 60 u - HP 95LX System Manager - DISABLE MACROS
  7404.     DI = 0F0Ah
  7405.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7406. Return: ???
  7407.     STACK unchanged
  7408. SeeAlso: INT 60/DI=0F0Bh
  7409. --------b-60----DI0F0B-----------------------
  7410. INT 60 u - HP 95LX System Manager - ENABLE MACROS
  7411.     DI = 0F0Bh
  7412.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7413. Return: ???
  7414.     STACK unchanged
  7415. SeeAlso: INT 60/DI=0F0Ah
  7416. --------b-60----DI0F0C-----------------------
  7417. INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
  7418.     DI = 0F0Ch
  7419.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7420.         ???
  7421. Return: ???
  7422.     STACK unchanged
  7423. --------b-60----DI0F0D-----------------------
  7424. INT 60 u - HP 95LX System Manager - "M_FORM_FT"
  7425.     DI = 0F0Dh
  7426.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7427.         DWORD    pointer to ???
  7428. Return: DX:AX -> ???
  7429.     STACK unchanged
  7430. --------b-60----DI0F0E-----------------------
  7431. INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
  7432.     DI = 0F0Eh
  7433.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7434.         DWORD    pointer to ???
  7435. Return: DX:AX -> ???
  7436.     STACK unchanged
  7437. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7438. --------b-60----DI1005-----------------------
  7439. INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
  7440.     DI = 1005h
  7441.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7442. Return: ???
  7443.     STACK unchanged
  7444. SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h
  7445. --------b-60----DI1200-----------------------
  7446. INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
  7447.     DI = 1200h
  7448.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7449.         DWORD    pointer to ???
  7450. Return: ???
  7451.     STACK unchanged
  7452. --------b-60----DI1201-----------------------
  7453. INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
  7454.     DI = 1201h
  7455.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7456.         WORD    ???
  7457. Return: DX:AX -> ???
  7458.     STACK unchanged
  7459. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7460. --------b-60----DI1202-----------------------
  7461. INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
  7462.     DI = 1202h
  7463.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7464. Return: DX:AX -> ???
  7465.     STACK unchanged
  7466. --------b-60----DI1203-----------------------
  7467. INT 60 u - HP 95LX System Manager - "INIT_SYSMGR_RSRCS"
  7468.     DI = 1203h
  7469.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7470. Return: ???
  7471.     STACK unchanged
  7472. --------b-60----DI1300-----------------------
  7473. INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
  7474.     DI = 1300h
  7475.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7476.         DWORD    pointer to ???
  7477.         DWORD    pointer to ???
  7478.         WORD    ???
  7479. Return: ???
  7480.     STACK unchanged
  7481. --------b-60----DI1301-----------------------
  7482. INT 60 u - HP 95LX System Manager - DISPLAY HELP
  7483.     DI = 1301h
  7484.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7485.         DWORD    pointer to ???
  7486. Return: ???
  7487.     STACK unchanged
  7488. --------b-60----DI1302-----------------------
  7489. INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
  7490.     DI = 1302h
  7491.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7492.         DWORD    pointer to ???
  7493.         WORD    ???
  7494. Return: ???
  7495.     STACK unchanged
  7496. --------b-60----DI1303-----------------------
  7497. INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
  7498.     DI = 1303h
  7499.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7500.         DWORD    pointer to ???
  7501. Return: ???
  7502.     STACK unchanged
  7503. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7504. --------b-60----DI1400-----------------------
  7505. INT 60 u - HP 95LX System Manager - "M_ColInit"
  7506.     DI = 1400h
  7507.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7508. Return: AX = ???
  7509.     STACK unchanged
  7510. --------b-60----DI1401-----------------------
  7511. INT 60 u - HP 95LX System Manager - "M_ColCpStr"
  7512.     DI = 1401h
  7513.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7514.         DWORD    pointer to ???
  7515.         WORD    ???
  7516.         DWORD    pointer to ???
  7517.         WORD    ???
  7518. Return: ???
  7519.     STACK unchanged
  7520. --------b-60----DI1402-----------------------
  7521. INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
  7522.     DI = 1402h
  7523.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7524.         ???
  7525. Return: ???
  7526.     STACK unchanged
  7527. --------b-60----DI1403-----------------------
  7528. INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
  7529.     DI = 1403h
  7530.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7531.         ???
  7532. Return: ???
  7533.     STACK unchanged
  7534. --------b-60----DI1404-----------------------
  7535. INT 60 u - HP 95LX System Manager - "M_ColToLower"
  7536.     DI = 1404h
  7537.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7538.         DWORD    pointer to ???
  7539.         WORD    ???
  7540. Return: ???
  7541.     STACK unchanged
  7542. --------b-60----DI1405-----------------------
  7543. INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
  7544.     DI = 1405h
  7545.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7546.         DWORD    pointer to ???
  7547.         WORD    ???
  7548.         DWORD    pointer to ???
  7549.         WORD    ???
  7550.         WORD    ???
  7551. Return: ???
  7552.     STACK unchanged
  7553. --------b-60----DI1406-----------------------
  7554. INT 60 u - HP 95LX System Manager - "M_ColToUpper"
  7555.     DI = 1406h
  7556.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7557.         DWORD    pointer to ???
  7558.         WORD    ???
  7559. Return: ???
  7560.     STACK unchanged
  7561. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7562. --------b-60----DI1500-----------------------
  7563. INT 60 u - HP 95LX System Manager - "GrDispInit"
  7564.     DI = 1500h
  7565.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7566.         ???
  7567. Return: ???
  7568.     STACK unchanged
  7569. --------b-60----DI1501-----------------------
  7570. INT 60 u - HP 95LX System Manager - "GrDispClear"
  7571.     DI = 1501h
  7572.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7573.         ???
  7574. Return: ???
  7575.     STACK unchanged
  7576. --------b-60----DI1502-----------------------
  7577. INT 60 u - HP 95LX System Manager - "GrDispDot"
  7578.     DI = 1502h
  7579.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7580.         ???
  7581. Return: ???
  7582.     STACK unchanged
  7583. --------b-60----DI1503-----------------------
  7584. INT 60 u - HP 95LX System Manager - "GrDispDraw"
  7585.     DI = 1503h
  7586.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7587.         ???
  7588. Return: ???
  7589.     STACK unchanged
  7590. --------b-60----DI1504-----------------------
  7591. INT 60 u - HP 95LX System Manager - "GrDispFill"
  7592.     DI = 1504h
  7593.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7594.         ???
  7595. Return: ???
  7596.     STACK unchanged
  7597. --------b-60----DI1505-----------------------
  7598. INT 60 u - HP 95LX System Manager - "GrDispRead"
  7599.     DI = 1505h
  7600.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7601.         ???
  7602. Return: ???
  7603.     STACK unchanged
  7604. --------b-60----DI1506-----------------------
  7605. INT 60 u - HP 95LX System Manager - "GrDispString"
  7606.     DI = 1506h
  7607.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7608.         ???
  7609. Return: ???
  7610.     STACK unchanged
  7611. --------b-60----DI1507-----------------------
  7612. INT 60 u - HP 95LX System Manager - "GrDispPan"
  7613.     DI = 1507h
  7614.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7615.         ???
  7616. Return: ???
  7617.     STACK unchanged
  7618. --------b-60----DI1508-----------------------
  7619. INT 60 u - HP 95LX System Manager - "GrDispZoom"
  7620.     DI = 1508h
  7621.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7622.         ???
  7623. Return: ???
  7624.     STACK unchanged
  7625. --------b-60----DI1509-----------------------
  7626. INT 60 u - HP 95LX System Manager - "GrDispSave"
  7627.     DI = 1509h
  7628.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7629.         ???
  7630. Return: ???
  7631.     STACK unchanged
  7632. --------b-60----DI150A-----------------------
  7633. INT 60 u - HP 95LX System Manager - "GrDispRestore"
  7634.     DI = 150Ah
  7635.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7636.         ???
  7637. Return: ???
  7638.     STACK unchanged
  7639. --------b-60----DI150B-----------------------
  7640. INT 60 u - HP 95LX System Manager - "GrDispCorner"
  7641.     DI = 150Bh
  7642.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7643.         ???
  7644. Return: ???
  7645.     STACK unchanged
  7646. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7647. --------b-60----DI1604-----------------------
  7648. INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
  7649.     DI = 1604h
  7650.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7651.         ???
  7652. Return: ???
  7653.     STACK unchanged
  7654. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7655. --------G-6000-------------------------------
  7656. INT 60 - SYS_PROF.EXE - PROFILER STATUS
  7657.     AH = 00h
  7658. Return: AX = 0000h    profiling is off
  7659.         otherwise profiling is on
  7660. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  7661.       Issue 47
  7662. SeeAlso: AH=01h"SYS_PROF",AH=02h"SYS_PROF"
  7663. --------G-6000-------------------------------
  7664. INT 60 - MDEBUG - GET STATUS
  7665.     AH = 00h
  7666.     DS:SI -> password or a null byte
  7667. Return: AX = return code
  7668.         FFFEh password is invalid
  7669.         FFFDh display mode is invalid
  7670.         else successful
  7671.         ES = value of the monitor register SE
  7672.         DI = value of the monitor register OF
  7673.         CH = monitor color
  7674.         CL = interpreter color
  7675.         BH = monitor start line
  7676.         BL = interpreter start line
  7677.         AH = makecode of the hotkey
  7678.         AL = ASCII code of the hotkey
  7679.         DL = status of special keys (only SHIFT, ALT, CTRL) for the
  7680.               hotkey (coded as for the keyboard flag at 0040h:0017h)
  7681.         DH = basic process number for the communication with drivers
  7682.               process number for the display driver, DH+1 = process
  7683.               number for the command driver(s)
  7684.     DS:SI -> MDEBUG identification table (see #2553)
  7685. Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
  7686.       Schemmer, including a memory monitor, an interpreter, and a
  7687.       disassembler
  7688. Notes:    MDEBUG uses INT 60 by default, but may be directed to any of INT 60
  7689.       through INT 67; the interrupt handler is preceded by the signature
  7690.       "USERINT" and is not chained
  7691.     if DS:SI points at a null byte, MDEBUG will prompt for a password if
  7692.       passwords are active; enough stack space must be provided for an
  7693.       INT 10h call (which MDEBUG uses while prompting for the password)
  7694. SeeAlso: AH=02h"MDEBUG"
  7695. Index:    hotkeys;MDEBUG
  7696.  
  7697. Format of MDEBUG identification table:
  7698. Offset    Size    Description    (Table 2553)
  7699.  -2    WORD    entry offset
  7700.  00h    WORD    CS of MDEBUG
  7701.  02h    DWORD    old INT 08h vector
  7702.  06h    DWORD    old INT 09h vector
  7703.  0Ah    DWORD    address INT 16h routine used by MDEBUG
  7704.  0Eh    BYTE    length of version string
  7705.  0Fh  N BYTEs    version string
  7706. --------N-600000-----------------------------
  7707. INT 60 - RIFS - CLIENT - INSTALLATION CHECK
  7708.     AX = 0000h
  7709. Return: AX = 1234h if installed
  7710.     CF clear
  7711. Program: RIFS is the Remote Installable File System by "kyle"
  7712. Range:    INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  7713. Note:    the installation check consists of testing for the signature "RIFS"
  7714.       immediately preceding the interrupt handler
  7715. SeeAlso: AX=0001h,AX=0005h,AX=0007h,AX=0008h,INT 2F/AX=5600h
  7716. --------N-600001-----------------------------
  7717. INT 60 - RIFS - CLIENT - UNINSTALL
  7718.     AX = 0001h
  7719. Return: CF clear if successful
  7720. SeeAlso: AX=0000h,AX=0009h
  7721. --------N-600002-----------------------------
  7722. INT 60 - RIFS - CLIENT - REMAP DRIVE
  7723.     AX = 0002h
  7724.     BH = local drive number
  7725.     BL = remote drive number
  7726. Return: CF clear if successful
  7727.     CF set on error
  7728. SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 21/AX=5F03h,INT 21/AX=5F05h"STARLITE"
  7729. --------N-600003-----------------------------
  7730. INT 60 - RIFS - CLIENT - UNMAP DRIVE
  7731.     AX = 0003h
  7732.     BL = drive to unmap
  7733. Return: CF clear if successful
  7734.     CF set on error
  7735. SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 21/AX=5F04h,INT 21/AX=5F06h"STARLITE"
  7736. --------N-600004-----------------------------
  7737. INT 60 - RIFS - CLIENT - UNMAP ALL DRIVES
  7738.     AX = 0004h
  7739. Return: CF clear if successful
  7740.     CF set on error
  7741. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  7742. --------N-600005-----------------------------
  7743. INT 60 - RIFS - CLIENT - GET TRANSLATION TABLE
  7744.     AX = 0005h
  7745. Return: CF clear if successful
  7746.         ES:BX -> translation table
  7747.     CF set on error
  7748. SeeAlso: AX=0000h,AX=0006h,AX=0007h
  7749. --------N-600006-----------------------------
  7750. INT 60 - RIFS - CLIENT - GET STATISTICS TABLE
  7751.     AX = 0006h
  7752. Return: CF clear if successful
  7753.         ES:BX -> statistics table
  7754.     CF set on error
  7755. SeeAlso: AX=0000h,AX=0005h,AX=0007h,AX=000Ah
  7756. --------N-600007-----------------------------
  7757. INT 60 - RIFS - CLIENT - GET PORT TRANSLATION TABLE
  7758.     AX = 0007h
  7759. Return: CF clear if successful
  7760.         CX = number of entries
  7761.         ES:BX -> port mapping table
  7762.     CF set on error
  7763. SeeAlso: AX=0000h,AX=0005h
  7764. --------N-600008-----------------------------
  7765. INT 60 - RIFS - SERVER - INSTALLATION CHECK
  7766.     AX = 0008h
  7767. Return: CF clear if successful
  7768.     CF set on error
  7769. Range:    INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  7770. Note:    the installation check consists of testing for the signature "RIFS"
  7771.       immediately preceding the interrupt handler
  7772. SeeAlso: AX=0000h,AX=0009h,AX=000Ah,AX=000Bh
  7773. --------N-600009-----------------------------
  7774. INT 60 - RIFS - SERVER - UNINSTALL
  7775.     AX = 0009h
  7776. Return: CF clear if successful
  7777.     CF set on error
  7778. SeeAlso: AX=0001h,AX=0008h
  7779. --------N-60000A-----------------------------
  7780. INT 60 - RIFS - SERVER - GET STATISTICS TABLE
  7781.     AX = 000Ah
  7782. Return: CF clear if successful
  7783.         ES:BX -> statistics table
  7784.     CF set on error
  7785. SeeAlso: AX=0006h,AX=0008h,AX=0009h,AX=000Bh
  7786. --------N-60000B-----------------------------
  7787. INT 60 - RIFS - SERVER - RESET
  7788.     AX = 000Bh
  7789. Return: CF clear if successful
  7790.     CF set on error
  7791. Note:    closes all open files
  7792. SeeAlso: AX=0008h,AX=0009h
  7793. --------G-6001-------------------------------
  7794. INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
  7795.     AH = 01h
  7796.     DS:SI -> password or a null byte
  7797. Return: AX = return code
  7798.         FFFEh password is invalid
  7799.         FFFDh display mode is invalid
  7800.         else successful
  7801.         ES:DI point to the help registers of MDEBUG
  7802.            ES:DI-02h  -> R0 (WORD)
  7803.            ES:DI      -> R1 (WORD)
  7804.            ES:DI+02h  -> R2 (WORD)
  7805.            ES:DI+04h  -> R3 (WORD)
  7806.            ...
  7807.            ES:DI+0Eh  -> R8 (WORD)
  7808. --------G-6001-------------------------------
  7809. INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
  7810.     AH = 01h
  7811. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  7812.       Issue 47
  7813. SeeAlso: AH=00h"SYS_PROF",AH=02h"SYS_PROF"
  7814. --------N-6001FF-----------------------------
  7815. INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
  7816.     AX = 01FFh
  7817.     BX = handle returned by function 02h
  7818. Return: CF set on error
  7819.         DH = error code (see #2554)
  7820.     CF clear if successful
  7821.         BX = version
  7822.         CH = network interface class (see #2555)
  7823.         DX = interface type (see #2555)
  7824.         CL = number
  7825.         DS:SI -> name
  7826.         AL = driver functions supported
  7827.         01h basic
  7828.         02h basic and extended
  7829.         05h basic and high-performance
  7830.         06h basic, high-performance, and extended
  7831.         FFh not installed
  7832. Note:    the handle in BX is optional for drivers written to v1.07 or later of
  7833.       the packet driver specification
  7834.  
  7835. (Table 2554)
  7836. Values for Packet Driver error code:
  7837.  01h "BAD_HANDLE"    invalid handle number
  7838.  02h "NO_CLASS"        no interfaces of the specified class found
  7839.  03h "NO_TYPE"        no interfaces of the specified type found
  7840.  04h "NO_NUMBER"    no interfaces of the specified number found
  7841.  05h "BAD_TYPE"        bad packet type
  7842.  06h "NO_MULTICAST"    interface does not support multicast messages
  7843.  07h "CANT_TERMINATE"    this packet driver cannot terminate
  7844.  08h "BAD_MODE"        invalid receiver mode
  7845.  09h "NO_SPACE"        insufficient space
  7846.  0Ah "TYPE_INUSE"    type accessed but never released
  7847.  0Bh "BAD_COMMAND"    bad command
  7848.  0Ch "CANT_SEND"    packet could not be sent
  7849.  0Dh "CANT_SET"        hardware address could not be changed
  7850.  0Eh "BAD_ADDRESS"    hardware address has a bad length or format
  7851.  0Fh "CANT_RESET"    could not reset interface
  7852.  
  7853. (Table 2555)
  7854. Values for Packet Driver network interface classes/types:
  7855.     Class 01h  Ethernet/IEEE 802.3
  7856.     01h 3COM 3C500/3C501
  7857.     02h 3COM 3C505
  7858.     03h MICOM-Interlan NI5010
  7859.     04h BICC Data Networks 4110
  7860.     05h BICC Data Networks 4117
  7861.     06h MICOM-Interlan NP600
  7862.     08h Ungermann-Bass PC-NIC
  7863.     09h Univation NC-516
  7864.     0Ah TRW PC-2000
  7865.     0Bh MICOM-Interlan NI5210
  7866.     0Ch 3COM 3C503
  7867.     0Dh 3COM 3C523
  7868.     0Eh Western Digital WD8003
  7869.     0Fh Spider Systems S4
  7870.     10h Torus Frame Level
  7871.     11h 10Net Communications
  7872.     12h Gateway PC-bus
  7873.     13h Gateway AT-bus
  7874.     14h Gateway MCA-bus
  7875.     15h IMC PCnic
  7876.     16h IMC PCnic II
  7877.     17h IMC PCnic 8-bit
  7878.     18h Tigan Communications
  7879.     19h Micromatic Research
  7880.     1Ah Clarkson "Multiplexor"
  7881.     1Bh D-Link 8-bit
  7882.     1Ch D-Link 16-bit
  7883.     1Dh D-Link PS/2
  7884.     1Eh Research Machines 8
  7885.     1Fh Research Machines 16
  7886.     20h Research Machines MCA
  7887.     21h Radix Microsystems EXM1 16-bit
  7888.     22h Interlan Ni9210
  7889.     23h Interlan Ni6510
  7890.     24h Vestra LANMASTER 16-bit
  7891.     25h Vestra LANMASTER 8-bit
  7892.     26h Allied Telesis PC/XT/AT
  7893.     27h Allied Telesis NEC PC-98
  7894.     28h Allied Telesis Fujitsu FMR
  7895.     29h Ungermann-Bass NIC/PS2
  7896.     2Ah Tiara LANCard/E AT
  7897.     2Bh Tiara LANCard/E MC
  7898.     2Ch Tiara LANCard/E TP
  7899.     2Dh Spider Communications SpiderComm 8
  7900.     2Eh Spider Communications SpiderComm 16
  7901.     2Fh AT&T Starlan NAU
  7902.     30h AT&T Starlan-10 NAU
  7903.     31h AT&T Ethernet NAU
  7904.     32h Intel smart card
  7905.     33h Xircom Packet Adapter
  7906.     34h Aquila Ethernet
  7907.     35h Novell NE1000
  7908.     36h Novell NE2000
  7909.     37h SMC PC-510
  7910.     38h AT&T Fiber NAU
  7911.     39h NDIS to Packet Driver adapter
  7912.     3Ah Racal-InterLan ES3210
  7913.     3Bh General Systems ISDN simulated Ethernet
  7914.     3Ch Hewlett-Packard
  7915.     3Dh IMC EtherNic-8
  7916.     3Eh IMC EtherNic-16
  7917.     3Fh IMC EtherNic-MCA
  7918.     40h NetWorth EtherNext
  7919.     41h Dataco Scanet
  7920.     42h DEC DEPCA
  7921.     43h C-Net
  7922.     44h Gandalf LANLine
  7923.     45h Apricot built-in
  7924.     46h David Systems Ether-T
  7925.     47h ODI to Packet Driver adapter (see also INT 2F/AX=5100h)
  7926.     48h AMD Am21110-16
  7927.     49h Intel ICD Network controller family
  7928.     4Ah Intel ICD PCL2
  7929.     4Bh Intel ICD PCL2A
  7930.     4Ch AT&T LANPacer
  7931.     4Dh AT&T LANPacer+
  7932.     4Eh AT&T EVB
  7933.     4Fh AT&T StarStation
  7934.     50h SLIP simulated ethernet
  7935.     51h Racal-Interlan NIA310
  7936.     52h Racal-Interlan NISE
  7937.     53h Racal-Interlan NISE30
  7938.     54h Racal-Interlan NI6610
  7939.     55h Ethernet over IP/UDP
  7940.     56h ICL EtherTeam 16
  7941.     57h David Systems
  7942.     58h NCR WaveLAN
  7943.     59h Thomas Contrad TC5045
  7944.     5Ah Russ Nelson's Parallel Port driver
  7945.     5Bh Intell EtherExpress 16
  7946.     5Ch IBMTOKEN
  7947.     5Dh Zenith Z-Note
  7948.     5Eh 3Com 3C509
  7949.     5Fh Mylex LNE390
  7950.     60h Madge Smart Ringnode
  7951.     61h Novell NE2100
  7952.     62h Allied Telesis 1500
  7953.     63h Allied Telesis 1700
  7954.     64h Fujitsu EtherCoupler
  7955.     Class 02h  ProNET-10
  7956.     01h Proteon p1300
  7957.     02h Proteon p1800
  7958.     Class 03h  IEEE 802.5/ProNet-4 (without expanded RIFs)
  7959.     01h IBM Token-Ring Adapter
  7960.     02h Proteon p1340
  7961.     03h Proteon p1344
  7962.     04h Gateway PC-bus
  7963.     05h Gateway AT-bus
  7964.     06h Gateway MCA-bus
  7965.     07h Madge board
  7966.     39h NDIS to Packet Driver adapter
  7967.     47h ODI to Packet Driver adapter
  7968.     Class 04h  Omninet
  7969.     Class 05h  Appletalk
  7970.     01h ATALK.SYS adapter
  7971.     Class 06h  Serial Line
  7972.     01h Clarkson 8250-SLIP
  7973.     02h Clarkson "Multiplexor"
  7974.     03h Eicon Technologies
  7975.     Class 07h  StarLAN (subsumed by Ethernet class)
  7976.     Class 08h  ARCnet
  7977.     01h Datapoint RIM
  7978.     Class 09h  AX.25
  7979.     01h Ottawa PI card
  7980.     02h Eicon Technologies
  7981.     Class 0Ah  KISS
  7982.     Class 0Bh  IEEE 802.3 with 802.2 headers
  7983.     types same as for class 01h
  7984.     Class 0Ch  FDDI with 802.2 headers
  7985.     01h Western Digital
  7986.     02h Frontier Technology
  7987.     Class 0Dh  Internet X.25
  7988.     01h Western Digital
  7989.     02h Frontier Technology
  7990.     03h Emerging Technologies
  7991.     04h The Software Forge
  7992.     05h Link Data Intelligent X.25
  7993.     06h Eicon Technologies
  7994.     Class 0Eh  N.T. LANSTAR (encapsulating DIX Ethernet)
  7995.     01h NT LANSTAR/8
  7996.     02h NT LANSTAR/MC
  7997.     Class 0Fh  SLFP (MIT serial specification)
  7998.     01h MERIT
  7999.     Class 10h  PPP (Point-to-Point Protocol)
  8000.     01h 8250/16550 UART
  8001.     02h Niwot Networks synch
  8002.     03h Eicon Technologies
  8003.     Class 11h  802.5 with expanded RIFs
  8004.     types same as for class 3
  8005.     Class 12h  reserved for LCP/NCPs
  8006. Note: class and type numbers are cleared through FTP Software
  8007. --------G-6002-------------------------------
  8008. INT 60 - MDEBUG - SET STATUS
  8009.     AH = 02h
  8010.     DS:SI -> password or a null byte
  8011.     ES = new value for the register SE
  8012.     DI = new value for the register OF
  8013.     CH = new monitor color if nonzero
  8014.     CL = new interpreter color if nonzero
  8015.     BH = new monitor start line if nonzero
  8016.     BL = new interpreter start line if nonzero
  8017.     AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
  8018.     DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
  8019.           if nonzero
  8020.     DH = if nonzero, new basic process number for communication with the
  8021.           drivers (DH = multiplex number for the display driver,
  8022.           DH+1 = multiplex number for the command driver or drivers)
  8023. Return: AX = return code
  8024.         FFFFh call not allowed
  8025.         FFFEh password is invalid
  8026.         FFFDh display mode is invalid
  8027.         0000h successful, status changed
  8028.         else AL = error reasons (see #2556)
  8029. Note:    the values of the registers SE and OF are always changed, the other
  8030.       values are only changed if they are valid
  8031. SeeAlso: AH=00h"MDEBUG"
  8032. Index:    hotkeys;MDEBUG
  8033.  
  8034. Bitfields for MDEBUG error reasons:
  8035. Bit(s)    Description    (Table 2556)
  8036.  0    invalid monitor start line
  8037.  1    invalid interpreter start line
  8038.  2    invalid hotkey
  8039.  3    invalid process number
  8040.  4-7    reserved
  8041. --------N-6002-------------------------------
  8042. INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
  8043.     AH = 02h
  8044.     AL = interface class
  8045.     BX = interface type
  8046.     DL = interface number
  8047.     DS:SI -> type
  8048.     CX = length of type (0000h for all packets)
  8049.     ES:DI -> receiver function (see #2557)
  8050. Return: CF set on error
  8051.         DH = error code (see #2554)
  8052.     CF clear if successful
  8053.         AX = handle
  8054. SeeAlso: AH=03h"FTP"
  8055.  
  8056. (Table 2557)
  8057. Values packet driver receiver is called with when a packet is received:
  8058.     AX = subfunction
  8059.         00h get packet buffer
  8060.         CX = buffer length
  8061.         DX = lookahead length (v1.10+)
  8062.         DS:SI -> lookahead buffer if DX nonzero (v1.10+)
  8063.         DI = error flags (class dependent) (v1.10+)
  8064.         Return: ES:DI -> packet buffer
  8065.                 0000h:0000h means throw away packet
  8066.             CX = size of buffer (v1.10+), may be smaller than
  8067.                   incoming data
  8068.         01h copy completed
  8069.         DS:SI -> buffer
  8070.         CX = bytes actually copied (v1.10+)
  8071.     BX = handle
  8072. --------G-6002-------------------------------
  8073. INT 60 - SYS_PROF.EXE - TURN PROFILING ON
  8074.     AH = 02h
  8075. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  8076.       Issue 47
  8077. SeeAlso: AH=00h"SYS_PROF",AH=01h"SYS_PROF"
  8078. --------G-6003-------------------------------
  8079. INT 60 - MDEBUG - POP UP
  8080.     AH = 03h
  8081.     DS:SI -> password or a null byte
  8082.     ES -> new value for the register SE
  8083.     DI -> new value for the register OF
  8084. Return: AX = return code (see #2558)
  8085. SeeAlso: AH=04h"MDEBUG"
  8086.  
  8087. (Table 2558)
  8088. Values for MDEBUG return code:
  8089.  FFFFh    call not allowed
  8090.  FFFEh    password is invalid
  8091.  FFFDh    display mode is invalid
  8092.  else    successful
  8093. --------N-6003-------------------------------
  8094. INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
  8095.     AH = 03h
  8096.     BX = handle
  8097. Return: CF set on error
  8098.        DH = error code (see #2554)
  8099.     CF clear if successful
  8100. SeeAlso: AH=02h"FTP"
  8101. --------G-6003-------------------------------
  8102. INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
  8103.     AH = 03h
  8104. Return: ES:BX -> profiling table
  8105. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  8106.       Issue 47
  8107. SeeAlso: AH=04h"SYS_PROF"
  8108. --------N-6004-------------------------------
  8109. INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
  8110.     AH = 04h
  8111.     DS:SI -> buffer
  8112.     CX = length
  8113. Return: CF set on error
  8114.         DH = error code (see #2554)
  8115.     CF clear if successful
  8116. Note:    the buffer may be modified immediately upon return from this call
  8117. SeeAlso: AH=0Bh
  8118. --------G-6004-------------------------------
  8119. INT 60 - MDEBUG - POP UP
  8120.     AH = 04h
  8121.     DS:SI -> password or a null byte
  8122. Return: AX = return code (see #2558)
  8123. SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"
  8124. --------G-6004-------------------------------
  8125. INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
  8126.     AH = 04h
  8127. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  8128.       Issue 47
  8129. SeeAlso: AH=03h"SYS_PROF"
  8130. --------N-6005-------------------------------
  8131. INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
  8132.     AH = 05h
  8133.     BX = handle (optional for v1.10+)
  8134. Return: CF set on error
  8135.        DH = error code (see #2554)
  8136.     CF clear if successful
  8137. --------G-6005-------------------------------
  8138. INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
  8139.     AH = 05h
  8140.     DS:SI -> password or a null byte
  8141.     BL = new value for the semaphor of MDEBUG
  8142.          00h  enable popup of MDEBUG
  8143.          else disable popup of MDEBUG
  8144. Return: AX = return code
  8145.         FFFEh password is invalid
  8146.         FFFDh display mode is invalid
  8147.         else successful
  8148.         BL = old value of the semaphor of MDEBUG
  8149.         BH = old value of the INT 08h semaphor
  8150.             (this semaphor is always reset after this function)
  8151. --------N-6006-------------------------------
  8152. INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
  8153.     AH = 06h
  8154.     BX = handle (optional for v1.10+)
  8155.     ES:DI -> buffer
  8156.     CX = length
  8157. Return: CF set on error
  8158.         DH = error code (see #2554)
  8159.     CF clear if successful
  8160.         CX = length
  8161. Note:    copies the local net address associated with the handle into the buffer
  8162. --------G-6006-------------------------------
  8163. INT 60 - MDEBUG - GET PASSWORD STATUS
  8164.     AH = 06h
  8165. Return: AL = status
  8166.         00h password inactive
  8167.         01h password active
  8168. --------N-6007-------------------------------
  8169. INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
  8170.     AH = 07h
  8171.     BX = handle (optional for v1.10+)
  8172. Return: CF set on error
  8173.         DH = error code (see #2554)
  8174.     CF clear if successful
  8175. --------G-6007-------------------------------
  8176. INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
  8177.     AH = 07h
  8178. Return: AL = active part for the next popup session of MDEBUG:
  8179.         bit 0: the next popup session will start in the interpreter rather
  8180.           than in the monitor
  8181.         bit 1: the next popup session will sart in the online-help
  8182. SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"
  8183. --------G-6008-------------------------------
  8184. INT 60 - MDEBUG - UNUSED
  8185.     AH = 08h-FFh
  8186. Return: AX = FFFCh
  8187. --------N-600A-------------------------------
  8188. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
  8189.     AH = 0Ah
  8190. Return: CF set on error
  8191.         DH = error code (0Bh) (see #2554)
  8192.     CF clear if successful
  8193.         ES:DI -> parameter table (see #2559)
  8194.  
  8195. Format of packet driver parameter table:
  8196. Offset    Size    Description    (Table 2559)
  8197.  00h    BYTE    major revision of packet driver spec driver conforms to
  8198.  01h    BYTE    minor revision of packet driver spec
  8199.  02h    BYTE    length of this structure in bytes
  8200.  03h    BYTE    length of a MAC-layer address
  8201.  04h    WORD    maximum transfer unit, including MAC headers
  8202.  06h    WORD    buffer size for multicast addr
  8203.  08h    WORD    number of receive buffers (one less than back-to-back MTU rcvs)
  8204.  0Ah    WORD    number of transmit buffers
  8205.  0Ch    WORD    interrupt number to hook for post-EOI processing, 00h=none
  8206. --------N-600B-------------------------------
  8207. INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  8208.     AH = 0Bh
  8209.     DS:SI -> buffer
  8210.     CX = length of buffer
  8211.     ES:DI -> FAR function to call when buffer becomes available (see #2560)
  8212. Return: CF set on error
  8213.         DH = error code (0Bh,0Ch) (see #2554)
  8214.     CF clear if successful
  8215. Notes:    unlike function 04h, the buffer is not available for modification as
  8216.       soon as the call returns; the buffer may be queued by the driver and
  8217.       not processed until later
  8218.     this function has been dropped from v1.10+ of the specification and
  8219.       replaced by function 0Ch
  8220. SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver"
  8221.  
  8222. (Table 2560)
  8223. Values packet driver completion function is called with:
  8224.     AX = result
  8225.         00h copy OK
  8226.         nonzero error
  8227.     ES:DI -> buffer passed to INT 60/AH=0Bh call
  8228. --------N-600C-------------------------------
  8229. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  8230.     AH = 0Ch
  8231.     ES:DI -> pointer to IOCB (see #2561)
  8232. Return: CF set on error
  8233.         DH = error code (see #2554)
  8234.     CF clear if successful
  8235. SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver"
  8236.  
  8237. Format of packet driver IOCB:
  8238. Offset    Size    Description    (Table 2561)
  8239.  00h    DWORD    pointer to buffer
  8240.  04h    WORD    length of buffer
  8241.  06h    BYTE    flags
  8242.         bit 0: packet driver is finished with IOCB
  8243.         bit 1: application requests upcall when driver completes
  8244.  07h    DWORD    function address for upcall (see #2562)
  8245.  0Bh  4 BYTEs    future gather write
  8246.  0Fh    BYTE    ???
  8247.  10h  8 BYTEs    private driver workspace
  8248.  
  8249. (Table 2562)
  8250. Values completion function is called with:
  8251.     ES:DI -> IOCB passed to INT 60/AH=0Ch
  8252. --------N-600C-------------------------------
  8253. INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
  8254.     AH = 0Ch
  8255. Return: AL = status
  8256.         00h successful
  8257.         ES:SI -> 6-byte station address
  8258.         02h semaphore service is unavailable
  8259. --------N-600D-------------------------------
  8260. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
  8261.     AH = 0Dh
  8262.     ES:DI -> IOCB
  8263. Return: CF set on error
  8264.         DH = error code (see #2554)
  8265.     CF clear if successful
  8266. SeeAlso: AH=0Ch"Packet Driver"
  8267. --------N-6011-------------------------------
  8268. INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT
  8269.     AH = 11h
  8270.     AL = drive number or 0
  8271.     DX = number of seconds to wait
  8272.     ES:SI = Ethernet address or 0
  8273.     DS:BX -> 31-byte ASCIZ semaphore name
  8274. Return: AL = status (see #2563)
  8275. SeeAlso: AH=12h,AH=13h
  8276.  
  8277. (Table 2563)
  8278. Values for 3com semaphore status:
  8279.  00h    successful
  8280.  01h    timeout
  8281.  02h    server not responding
  8282.  03h    invalid semaphore name
  8283.  04h    semaphore list is full
  8284.  05h    invalid drive ID
  8285.  06h    invalid Ethernet address
  8286.  07h    not logged in
  8287.  08h    write to network failed
  8288.  09h    semaphore already logged for this CPU
  8289. --------N-6012-------------------------------
  8290. INT 60 - 3com, 10NET, Banyan VINES - LOCK
  8291.     AH = 12h
  8292.     AL = drive number or 00h
  8293.     ES:SI = Ethernet address or 0000h:0000h
  8294.     DS:BX -> 31-byte ASCIZ semaphore name
  8295. Return: AL = status (see also #2563)
  8296.         01h semaphore currently locked by another PC
  8297. Note:    unlike function 11h, this function returns immediately
  8298. SeeAlso: AH=11h,AH=13h
  8299. --------N-6013-------------------------------
  8300. INT 60 - 3com, 10NET, Banyan VINES - UNLOCK
  8301.     AH = 13h
  8302.     AL = drive number or 00h
  8303.     ES:SI = Ethernet address or 0000h:0000h
  8304.     DS:BX -> 31-byte ASCIZ semaphore name
  8305. Return: AL = status (see also #2563)
  8306.         01h semaphore not locked
  8307. SeeAlso: AH=11h,AH=12h
  8308. --------N-6014-------------------------------
  8309. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
  8310.     AH = 14h
  8311.     BX = handle (optional for v1.10+)
  8312.     CX = mode (see #2564)
  8313. Return: CF set on error
  8314.        DH = error code (01h,08h) (see #2554)
  8315.     CF clear if successful
  8316. SeeAlso: AH=15h
  8317.  
  8318. (Table 2564)
  8319. Values for packet driver receive mode:
  8320.  01h    turn off receiver
  8321.  02h    receive only packets sent to this interface
  8322.  03h    mode 2 plus broadcast packets
  8323.  04h    mode 3 plus limited multicast packets
  8324.  05h    mode 3 plus all multicast packets
  8325.  06h    all packets
  8326.  07h    raw mode for serial line only (v1.10+)
  8327. --------N-6015-------------------------------
  8328. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
  8329.     AH = 15h
  8330.     BX = handle (optional for v1.10+)
  8331. Return: CF set on error
  8332.         DH = error code (01h) (see #2554)
  8333.     CF clear if successful
  8334.         AX = receive mode (see #2564)
  8335. SeeAlso: AH=14h
  8336. --------N-6016-------------------------------
  8337. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
  8338.     AH = 16h
  8339.     ES:DI -> multicast list
  8340.     CX = length of list in bytes
  8341. Return: CF set on error
  8342.         DH = error code (06h,09h,0Eh) (see #2554)
  8343.     CF clear if successful
  8344. SeeAlso: AH=17h
  8345. --------N-6017-------------------------------
  8346. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
  8347.     AH = 17h
  8348. Return: CF set on error
  8349.         DH = error code (06h,09h) (see #2554 at AX=01FFh)
  8350.     CF clear if successful
  8351.         ES:DI -> multicast addresses (do not modify)
  8352.         CX = bytes of multicast addresses currently in use
  8353. SeeAlso: AH=16h
  8354. --------N-6018-------------------------------
  8355. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
  8356.     AH = 18h
  8357.     BX = handle (optional for v1.10+)
  8358. Return: CF set on error
  8359.         DH = error code (01h) (see #2554)
  8360.     CF clear if successful
  8361.         DS:SI -> statistics (see #2565)
  8362.  
  8363. Format of packet driver statistics:
  8364. Offset    Size    Description    (Table 2565)
  8365.  00h    DWORD    packets in
  8366.  04h    DWORD    packets out
  8367.  08h    DWORD    bytes in
  8368.  0Ch    DWORD    bytes out
  8369.  10h    DWORD    errors in
  8370.  14h    DWORD    errors out
  8371.  18h    DWORD    packets dropped
  8372. --------N-6019-------------------------------
  8373. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
  8374.     AH = 19h
  8375.     ES:DI -> address
  8376.     CX = length of address
  8377. Return: CF set on error
  8378.         DH = error code (0Dh,0Eh) (see #2554)
  8379.     CF clear if successful
  8380.         CX = length
  8381. --------N-601A-------------------------------
  8382. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
  8383.     AH = 1Ah
  8384.     DS:SI -> buffer
  8385.     CX = length of buffer
  8386. Return: CF set on error
  8387.         DH = error code (see #2554 at AX=01FFh)
  8388.     CF clear if successful
  8389. SeeAlso: AH=1Ch
  8390. --------N-601B-------------------------------
  8391. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
  8392.     AH = 1Bh
  8393. Return: CF set on error
  8394.         DH = error code (see #2554)
  8395.     CF clear if successful
  8396. SeeAlso: AH=1Ch
  8397. --------N-601C-------------------------------
  8398. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
  8399.     AH = 1Ch
  8400.     DS:SI -> buffer
  8401.     CX = length of buffer
  8402.     DX = timeout in clock ticks
  8403. Return: CF set on error
  8404.         DH = error code (see #2554 at AX=01FFh)
  8405.     CF clear if successful
  8406.         CX = number of bytes transferred to buffer
  8407. SeeAlso: AH=1Ah,AH=1Bh
  8408. --------a-60AD-------------------------------
  8409. INT 60 - AccessDOS - API
  8410.     AH = ADh
  8411.     AL = function
  8412.         E1h ???
  8413.         Return: AX = ???
  8414.         E2h get configuration
  8415.         Return: BX:AX -> configuration data
  8416. Program: AccessDOS is a public domain TSR developed at The Trace Research and
  8417.       Development Center which provides extensions for keyboard, mouse,
  8418.       and sound access by the visually, hearing, or motor-control
  8419.       impaired.
  8420. Range:    INT 60 to INT 66, selected by scanning for 0000h:0000h vector
  8421. Note:    the installation check is to test for the signature "ACCESSv1.00"
  8422.       beginning three bytes past the start of the interrupt handler
  8423. --------N-60E9-------------------------------
  8424. INT 60 - FTP Packet Driver - Crynwr Software - AUTOSELECT TRANSCEIVER
  8425.     AH = E9h
  8426.     ???
  8427. Return: ???
  8428. --------!---Section--------------------------
  8429.